본문 바로가기

CSS

5.CSS3 기본



1. CSS3 소개

2. CSS3 접두어

3. border-radius 속성 

4. box-shadow 속성 

5. 투명 효과

6. text-shadow 속성

7. 유사 클래스 (Pseudo-Classes)

8. 유사 요소 (Pseudo-Elements)

9. word-wrap

10. @font-face




1. CSS3 소개


1. CSS3는 하위 버전들과 완벽하게 호환되는 CSS의 최신 표준이다.

새롭게 달라진 주요 기능들

 - Border radius : 요소들 코너를 둥글게 하는 것이 가능해졌다.

 - Border images : 경계선에 이미지를 넣는 것이 가능해졌다.

 - Multiple backgrounds : 여러가지 배경을 요소에 넣을 수 있다.

 - Animations and effects : 애니메이션 추가되었다.


2. 새로운 기능

웹 개발을 쉽고 빠르게 하기 위해 CSS3에 다음과 같은 추가 기능들이 있다.

  - Box Shadow : 색상, 크기, 블러, 오프셋 값을 정하여 하나 이상의 그림자를 첨부할 수 있다.

  - Gradients : 요소의 배경에 그라데이션을 줄 수 있다. Linear, Radial 타입의 그라데이션이 가능하다.

  - Transform : 요소를 회전, 스케일, 이동, 기울일 수 있다.

  - Transition : 하나의 CSS 속성에서 다른 CSS속성으로 전환할 수 있는 에니메이션. Transforms와 결합하여 요소의 위치, 회전, 크기 등을 애니메이션으로 만들 수 있다.( 가장 주목받고 있는 기능으로 자체 사양을 가지고 키 프레임을 만들며 시간 설정 등을 조작할 수 있다. )



2. CSS3 접두어


 웹 브라우저 개발사들이 CSS의 추가 기능 개발건으로 테스트를 위해 CSS3 접두어를 추가했다. 이 접두어는 CSS의 정식 스펙은 아니다. 예를 들어 사파리와 크롬은 -webkit이 접두어이다. border-radius 속성은 편재 크롬, 사파리, 모질라에서 접두어가 붙어있는 한 지원된다. 접두어는 그 속성을 지원하지 않는 웹 브라우저에서도 페이지가 동작할 수 있게 하기 위해 추가되었다. 따라서 동일한 속성이 여러 브라우저를 지원하기 위해 접두어만 다를수도 있다.


     

span {
   -webkit-border-radius: 24px;
}



   브라우저에 따른 접두어 목록이다.

   




3. border-radius 속성


 CSS3에서 어떤 요소든지 border-radius 속성으로 모서리를 둥글게 만들 수 있다. 

아래 코드는 네 모서리에 20px을 반지름으로 하는 원크기의 굴곡이 생긴다.

    

div {
    border-radius: 20px;
    background-color: green;
    color: white;
    padding: 50px;
}



 모서리별로 둥근 정도를 다르게 할 수 있다. top-left, top-right, bottom-right, bottom-left 순서로 값을 정한다.


    

div {
    border-radius: 0 0 20px 20px;
    background-color: green;
    color: white;
    padding: 50px;
}




 가로 세로가 200px인 요소에 모서리 굴곡값을 100px로 하면 원이 그려진다.


    

div {
    border-radius: 100px;
    width: 200px;
height: 200px;
    color: green;
}






4. box-shadow 속성


1. CSS3의 box-shadow 속성으로 요소에 그림자 효과를 줄 수 있다. box-shadow 속성은 브라우저에 의해 다음과 같은 방법으로 디코딩된다.

  - 첫번째 값은 그림자와 요소의 수평 거리이다. 음수값 기입 가능. 반드시 기입해야 한다.

  - 두번째 값은 그림자와 요소의 수직 거리이다. 음수값 기입 가능. 반드시 기입해야 한다.

  - 세번째 값은 blur 값이다. 음수값 불가. 옵션값이다.

  - 네번째 값은 spread 값이다. 음수값 기입하면 그림자 수축효과. 옵션값이다.

  - 다섯번째 값은 그림자의 색이다. 옵션값이다.

     

div {
   width: 300px;
   height: 100px;
   background-color: #9ACD32;
   box-shadow: 10px 10px 5px 5px #888888;
}





 2. Inner Shadow

  - insert 키워드로 그림자를 요소 안으로 그리는 것이 가능하다. 

    

div {
    box-shadow: inset 10px 10px 5px #888888;
}



 3. 멀티 그림자 효과

  - 한 요소에 다양한 그림자 효과를 동시에 지정할 수 있다. 각 그림자들을 , 로 구분한다.

    

div {
    box-shadow:
inset 10px 10px 5px #888888,
inset -10px -10px 5px #888888,
0px 0px 10px 4px #FF6347,
30px 0px 20px 30px #B0E0E6;
}




     

5. 투명 효과


1. CSS3 전에는 배경을 반투명하게 하기 위해 배경 이미지 자체를 반투명하게 만들어서 사용했다. CSS3에서는 반투명 효과를 더 쉽게 만들어낼 수 있다. 반투명 효과를 위해 CSS3는 rgba, HSL색을 지원한다.

  - rgba(red, green blue, alpha) : alpha 파라미터는 0.0(완전 투명) ~ 1.0(완전 불투명) 값을 갖는다.

  - hsla(hue, saturation, lightness, alpha) : 

      - hue : 색조는 0~360의 값을 갖는다. 0은 red, 120은 green 240은 blue다.

      - saturation : 채도는 0~100%의 값을 갖는다.

      - lightness : 밝기도 0(black)~100%(white)의 값을 갖는다.

      - alpha : 0.0(완전 투명) ~ 1.0(완전 불투명) 값을 갖는다.


     

div {
    background-color: rgba(255, 0, 0, 0.3);  
}




6. text-shadow 속성


 test-shadow 속성으로 여러개 그림자 효과를 지정할 수 있다. 각 그림자 효과는 , 로 구분한다. 

여러개의 그림자 효과가 올떄 가장 마지막에 기입된 효과가 맨 위에 표시된다. 즉, 역순으로 표시된다.

     

h1 {
   text-shadow: 5px 10px 2px #93968f, 
      -3px 6px 5px #58d1e3;
}



그림자 효과를 좀 더 리얼하게 나타내기 위한 팁

 - 그림자는 텍스트에 가까울수록 선명하다(blur가 낮다). 텍스트에 멀리 떨어질수록 그림자는 더 밝다.

 - 그림자는 텍스트에 가까울수록 텍스트 밑부분에 가깝다.



7. 유사 클래스(Pseudo-Classes)


  자바 스크립트나 다른 스크립트 없이 유사 클래스를 스타일 요소에 적용할 수 있다. 유사 클래스는 ":" 으로 시작한다. 가장 많이 사용되는 유사 클래스는 :first-child 와 :last-child이다.

 - :first-child -> 선택된 요소중 첫번째 요소에 해당한다. 

 - :last-child -> 선택된 요소중 마지막 요소에 해당한다.  

     

#parent p:first-child,p:last-child {
   color: green;
   text-decoration: underline;   
}




8. 유사 요소(Pseudo-Elements)


  유사 요소는 특정 요소들을 선택하기 위해 사용한다. 다섯가지 유사 요소가 있다. 유사 요소는 "::"으로 시작한다.

  - ::first-line -> 선택된 요소 중 첫번째 줄을 선택한다.

  - ::first-letter -> 선택된 요소 중 첫번째 글자를 선택한다.

  - ::selection -> 사용자가 선택한 요소를 선택해서 스타일을 적용한다.

  - ::before -> 선택된 요소의 바로 앞에 요소를 삽입한다.

  - ::after -> 선택된 요소의 바로 뒤 요소를 삽입한다.

    

p::first-line {
   color: #589432;
}



    

p::selection {
   background: #8bc34a;
   color: #fff;
}



    

p::before {
   content: url("logo.jpg");
}





9. word-wrap


  word-wrap 속성은 긴 문장을 단어 단위로 다음 줄로 넘기는 것을 의미한다. 가능한 값으로는 normal과 break-word가 있다.

    

{
   width: 210px; 
   height: 100px;
   border: 1px solid #000000;
   word-wrap: break-word;
}





10. @font-face


  @font-face 규칙은 새로 정의된 글꼴을 웹 페이지에 로드한다. 이것 때문에 글꼴이 클라이언트 PC에 설치되지 않아도 사용할 수 있다. IE8 이전 버전은 글꼴이 eot여가 하고 반면에 다른 브라우저는 ttf와 otf를 지원한다.

@font-face를 사용하기 위해 반드시 font-family 속성이 먼저 정의되어야 한다.

    

@font-face {
  font-family: Delicious; 
  src: url('Delicious-Roman.otf'); 
} 
@font-face { 
  font-family: Delicious; 
  font-weight: bold; 
  src: url('Delicious-Bold.otf'); 
}
h1{
   font-family: Delicious, sans-serif; 
}



IE에 2개 이상의 @font-face가 오면 버그가 있는데 #iefix를 사용해서 해결한다.

    

@font-face { 
   font-family: Delicious; 
   src: url('Delicious-Roman.ttf');
   src: url('Delicious-Roman.eot?#iefix'); 
}









<연관게시글>


'CSS' 카테고리의 다른 글

7.CSS3 Animation  (0) 2019.01.29
6.CSS3 그라데이션&배경  (0) 2019.01.29
4.레이아웃  (0) 2019.01.29
3.Properties  (0) 2019.01.29
2.텍스트 스타일  (0) 2019.01.29