CSS 전환

CSS 전환

CSS 전환은 특정 시간 동안 속성 값을 원활하게 변경할 수 있습니다.

이 요소에 마우스를 가져가 CSS 전환 효과를 확인하세요:

CSS

이 장에서는 다음과 같은 속성을 배울 것입니다:

  • transition
  • transition-delay
  • transition-duration
  • transition-property
  • transition-timing-function

전환 효과 브라우저 지원

표에서 수치는 해당 속성을 완전히 지원하는 첫 번째 브라우저 버전을 나타냅니다.

속성 크롬 IE 파이어폭스 사파리 오페라
transition 26.0 10.0 16.0 6.1 12.1
transition-delay 26.0 10.0 16.0 6.1 12.1
transition-duration 26.0 10.0 16.0 6.1 12.1
transition-property 26.0 10.0 16.0 6.1 12.1
transition-timing-function 26.0 10.0 16.0 6.1 12.1

CSS 전환 사용법

전환 효과를 생성하려면 반드시 두 가지를 명확히 해야 합니다:

  • 효과를 추가하려는 CSS 속성
  • 효과 지속 시간

주의하세요:지속 시간 부분을 지정하지 않으면 전환 효과가 없습니다. 기본 값은 0입니다.

아래 예제는 100px * 100px의 빨간색 <div> 요소를 보여줍니다. <div> 요소는 width 속성에도 전환 효과를 지정했으며, 지속 시간은 2초입니다:

예제

div {
  width: 100px;
  height: 100px;
  background: red;
  transition: width 2s;
}

지정된 CSS 속성(width) 값이 변경될 때, 전환 효과가 시작됩니다.

이제, <div> 요소에 마우스를 올려 담기했을 때 width 속성에 새로운 값을 지정해 보겠습니다:

예제

div:hover {
  width: 300px;
}

직접 시도해 보세요

주의하세요, 커서가 요소에서 벗어나면 점점 원래 스타일로 변환됩니다.

여러 속성 값을 변경합니다

아래 예제는 width와 height 속성에 모두 전환 효과를 추가한 것입니다. width는 2초, height는 4초입니다:

예제

div {
  transition: width 2s, height 4s;
}

직접 시도해 보세요

전환의 속도 곡선을 지정합니다

transition-timing-function 속성은 전환 효과의 속도 곡선을 정의합니다。

transition-timing-function 속성은 다음과 같은 값을 받을 수 있습니다:

  • ease - 시작이 느리게 시작하고, 빨리 진행하여 느리게 끝내는 전환 효과를 정의합니다(기본)
  • linear - 시작에서 끝까지 일정한 속도를 유지하는 전환 효과를 정의합니다
  • ease-in - 느리게 시작하는 전환 효과를 정의합니다
  • ease-out - 느리게 끝나는 전환 효과를 정의합니다
  • ease-in-out - 시작과 끝이 느리게 진행하는 전환 효과를 정의합니다
  • cubic-bezier(n,n,n,n) - 세 번째 베塞尔 함수에서 자신의 값을 정의할 수 있습니다

다음 예제는 사용할 수 있는 다양한 속도 곡선을 보여줍니다:

예제

#div1 {transition-timing-function: linear;}
#div2 {transition-timing-function: ease;}
#div3 {transition-timing-function: ease-in;}
#div4 {transition-timing-function: ease-out;}
#div5 {transition-timing-function: ease-in-out;}

직접 시도해 보세요

지연 전환 효과

transition-delay 속성은 전환 효과의 지연을 초로 지정합니다。

아래 예제는 시작 전에 1초의 지연이 있습니다:

예제

div {
  transition-delay: 1s;
}

직접 시도해 보세요

过渡 + 转换

아래 예제는 변환에 전환 효과를 추가한 것입니다:

예제

div {
  transition: width 2s, height 2s, transform 2s;
}

직접 시도해 보세요

更多过渡实例

CSS 전환 속성을 하나씩 지정할 수 있습니다. 다음과 같이 예제를 들어보겠습니다:

예제

div {
  transition-property: width;
  transition-duration: 2s;
  transition-timing-function: linear;
  transition-delay: 1s;
}

직접 시도해 보세요

또는 간추린 형식을 사용할 수 있습니다 transition 속성:

예제

div {
  transition: width 2s linear 1s;
}

직접 시도해 보세요

CSS 전환 속성

아래 표는 모든 CSS 전환 속성을 나열합니다:

속성 설명
transition 네 개의 전환 속성을 하나의 속성으로 설정하는 단축 속성입니다.
transition-delay 전환 효과의 지연 시간(초로 계산됨).
transition-duration 전환 효과가 얼마나 오래 지속되는지 또는 밀리초를 지정합니다.
transition-property 전환 효과가 적용될 CSS 속성의 이름을 지정합니다.
transition-timing-function 전환 효과의 속도 곡선을 지정합니다.