CSS / 애니메이션 / animation

예제

다음은 CSS로 만든 간단한 애니메이션입니다. 작은 박스가 커졌다 작아집니다.

코드는 다음과 같습니다.

<!doctype html>
<html lang="ko">
    <head>
        <meta charset="utf-8">
        <title>CSS</title>
        <style>
            @keyframes big {
                from {
                    width: 20px;
                    height: 20px;
                }
                to {
                    width: 200px;
                    height: 200px;
                }
            }
            div#jb {
                margin: 30px auto;
                width: 20px;
                height: 20px;
                background-color: orange;
                animation-name: big;
                animation-duration: 2s;
                animation-timing-function: linear;
                animation-delay: 2s;
                animation-iteration-count: 4;
                animation-direction: alternate;
                animation-fill-mode: none;
                animation-play-state: running;
            }
        </style>
    </head>
    <body>
        <div id="jb"></div>
    </body>
</html>

코드의 의미

@keyframes

  • 어떤 모양에서 어떤 모양으로 바꿀지 정합니다.
  • 이름은 big으로 지었고, 20px 정사각형에서 200px 정사각형으로 커집니다.

animation-name

  • 어떤 @keyframes을 사용할지 정합니다.
  • 예제에서는 big을 사용합니다.

animation-duration

  • 애니메이션의 총 시간을 정합니다.
  • 예제에서는 2초 동안 애니메이션을 시작하고 끝냅니다.

animation-timing-function

  • 애니메이션 진행 속도를 정합니다.
  • 예제에서는 등속으로 진행합니다.

animation-delay

  • 애니메이션을 시작하기 전에 대기하는 시간을 정합니다.
  • 예제에서는 2초 대기 후 시작합니다.

animation-iteration-count

  • 애니메이션 반복 횟수를 정합니다.
  • 예제에서는 4회 반복합니다.

animation-direction

  • 애니메이션 진행 방향입니다.
  • 예제에서는 정방향 → 역방향 → 정방향 → 역방향 → …으로 진행하도록 정했습니다.

animation-fill-mode

  • 애니메이션을 마친 후 어떤 상태로 만들지 정합니다.

animation-play-state

  • 애니메이션을 진행할지 멈출지 정합니다.
  • 예제에서는 진행하는 것으로 설정했습니다.

축약형

애니메이션의 여러 속성은 animation 속성으로 줄여서 표현할 수 있습니다.

animation: big 2s linear 2s 4 alternate none running;

Related Posts

CSS / CSS / 선택자(Selector) / 가상 요소와 가상 클래스 순서

CSS / CSS / 선택자(Selector) / 가상 요소와 가상 클래스 순서

가상 요소를 이용하면 특정 요소 앞에 문자열이나 이미지를 넣을 수 있습니다. HTML을 변경하지 않고 요소를 추가할 수 있는 유용한 선택자입니다. 다음은 가상 요소를 이용하여 Hello라는 문자열을 추가한 예제입니다. <!doctype html> <html lang="ko"> <head> <meta charset="utf-8"> <title>CSS</title> <style> ...

CSS / box-shadow / 박스에 그림자 효과 만드는 속성

CSS / box-shadow / 박스에 그림자 효과 만드는 속성

개요 box-shadow는 선택한 요소에 그림자 효과를 만들어주는 속성입니다. 기본값 : none 상속 : No 애니메이션 : Yes 버전 : CSS Level 3 문법 box-shadow: none | x-position y-position blur spread color | inset | initial | inherit none : 그림자 효과를 없앱니다. x-position : 가로 위치입니다. 양수면 오른쪽에, 음수면 왼쪽에 그림자가 만들어집니다. (필수) y-position : 세로 위치입니다. 양수면 아래쪽에, 음수면 ...

CSS / 여백 / padding, margin

CSS / 여백 / padding, margin

여백에는 안쪽여백과 바깥여백이 있습니다. 안쪽여백은 padding 속성으로, 바깥여백은 margin 속성으로 정합니다. 속성값 부여하기 padding과 margin 속성에 값을 부여하는 방법은 다음과 같습니다. padding: xx yy zz ww; margin: xx yy zz ww; xx는 위, yy는 오른쪽, zz는 아래, ww는 왼쪽 여백입니다. 간단한 예는 다음과 같습니다. <!doctype html> <html lang="ko"> <head> <meta charset="utf-8"> <title>CSS</title> ...

CSS / 선택자(Selector) / :nth-child(), :nth-last-child()

CSS / 선택자(Selector) / :nth-child(), :nth-last-child()

:nth-child(), :nth-last-child() :nth-child()와 :nth-last-child()는 특정 순서에 있는 요소를 선택할 때 사용하는 선택자입니다. :nth-child()는 앞에서부터 세고, :nth-last-child()는 뒤에서부터 셉니다. 인터넷 익스플로러는 IE 9 이상에서 사용할 수 있습니다. :nth-child() :nth-child()는 형제 요소 중에서 특정 순서에 있는 요소를 선택할 때 사용합니다. 문법 :nth-child( an+b ) a와 b는 정수입니다. 0과 음수도 가능합니다. n에는 음이 아닌 정수, 즉 0, 1, 2, 3, …이 차례대로 ...

CSS / linear-gradient - 선형 그라데이션 효과 만들기

CSS / linear-gradient - 선형 그라데이션 효과 만들기

linear-gradient linear-gradient는 CSS3에서 추가된 것으로, 선형 그라데이션 효과를 만듭니다. 인터넷 익스플로러는 버전 10 이상에서 사용할 수 있습니다. 기본 문법 linear-gradient( direction, color1, color2, …, color3 ) direction에는 그라데이션 방향을 입력합니다. to bottom : 위에서 아래로 그라데이션을 만듭니다. (기본값) to top : 아래에서 위로 그라데이션을 만듭니다. to left : 오른쪽에서 왼쪽으로 그라데이션을 만듭니다. to right : 왼쪽에서 오른쪽으로 그라데이션을 ...

CSS / CSS로 드롭다운(Dropdown) 메뉴 만들기

CSS / CSS로 드롭다운(Dropdown) 메뉴 만들기

CSS만으로 만든 드롭다운 메뉴입니다. Ipsum, Dolor에 마우스를 올리면 하위 메뉴가 나옵니다. <!doctype html> <html lang="ko"> <head> <meta charset="utf-8"> <title>CSS Tips | Dropdown Menu</title> <style> .dropdown > ul > li { ...

CSS / table-layout / 표(table) 크기 고정시키기

CSS / table-layout / 표(table) 크기 고정시키기

표(table)는 width 속성으로 가로 크기를 정할 수 있습니다. 다음은 가로 크기가 500px인 간단한 표입니다. <!doctype html> <html lang="ko"> <head> <meta charset="utf-8"> <title>CSS</title> <style> table { width: 500px; } td { padding: 10px; border: 1px solid #666666; } </style> </head> <body> <table> <tr> <td class="c1">HAHAHA</td> <td class="c2">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean nec mollis nulla. Phasellus lacinia tempus mauris eu laoreet. Proin gravida velit dictum dui consequat malesuada.</td> </tr> </table> </body> </html> 표 ...

CSS / 애니메이션 / transform / scale – 2D 확대 또는 축소하기

CSS / 애니메이션 / transform / scale – 2D 확대 또는 축소하기

transform / scale transform의 scale로 요소를 확대 또는 축소할 수 있습니다. 평면에서의 확대 또는 축소입니다. IE는 버전 10부터 지원합니다. 문법 transform: scale( 2.0 ); 가로와 세로 모두 2배 확대합니다. transform: scale( 2.0, 1.5 ); 가로로 2배, 세로로 1.5배 확대합니다. transform: scaleX( 2.0 ); 가로로 2배 확대합니다. transform: scaleX( 2.0 ) scaleY( 1.5 ); 가로로 2배, 세로로 1.5배 확대합니다. 예제 마우스를 올렸을 때 확대됩니다. 그 ...

CSS / text-indent / 들여쓰기, 내어쓰기 만드는 속성

CSS / text-indent / 들여쓰기, 내어쓰기 만드는 속성

text-indent 들여쓰기와 내어쓰기는 text-indent 속성으로 만듭니다. 값이 양수이면 들여쓰기, 값이 음수이면 내어쓰기가 됩니다. 기본값은 0입니다. 내어쓰기를 할 때는 왼쪽에 여백을 적절히 줍니다. 예제 <!doctype html> <html lang="ko"> <head> <meta charset="utf-8"> <title>CSS</title> <style> p { font-size: 20px; ...

CSS / background-repeat / 배경 이미지 반복 여부 정하는 속성

CSS / background-repeat / 배경 이미지 반복 여부 정하는 속성

개요 background-repeat로 배경 이미지의 반복 여부와 반복 방향을 정합니다. 기본값 : repeat 상속 : No 애니메이션 : No 버전 : CSS Level 1 문법 background-repeat: repeat | repeat-x | repeat-y | no-repeat | inherit repeat : 가로 방향, 세로 방향으로 반복합니다. repeat-x : 가로 방향으로 반복합니다. repeat-y : 세로 방향으로 반복합니다. no-repeat : 반복하지 않습니다. initial : 기본값으로 설정합니다. inherit : 부모 요소의 속성값을 상속받습니다. 예제 <!doctype html> <html lang="ko"> ...

CSS 강좌