Post

CSS display 정리

CSS의 속성들의 정보 정리 세번째.

CSS의 속성 목록

  • transform
  • position
  • display
  • transition
  • z-index
  • height: inherit

transition의 속성들

CSS의 transition 속성은 요소의 스타일 변경이 일어날 때 그 변화를 일정 시간에 걸쳐 부드럽게 전환하도록 설정하는데 사용 됩니다. 이를 통해 간단한 애니메이션 효과를 생성할 수 있으며, 사용자 인터페이스의 상호작용을 더 부드럽고 매력적 으로 만들 수 있습니다. 또한 성능 상의 이유로, 가능하면 opacity와 transform과 같은 속성에 전환 효과를 적용 하는 것이 좋습니다. 이들은 브라우저에서 하드웨어 가속을 사용할 수 있기 때문에 더 부드럽고 효율적인 애니메이션 효과 를 낼 수 있습니다.

  1. transition-property
  2. transition-duration
  3. transition-timing-function
  4. transition-delay

transition-property

transition-property는 CSS에서 요소의 스타일 변경이 시간에 따라 어떻게 전환될지를 정의할 때 사용하는 속성 입니다. 이는 CSS 트랜지션(transition) 기능의 일부로, 사용자 인터페이스의 상호작용을 보다 부드럽고 시각적으로 매력적 으로 만드는데 활용됩니다.

1
transition-property: none all property;

구문

  • none: 어떠한 속성도 전환되지 않음을 의미합니다.

  • all: 요소의 모든 속성이 전환 대상에 포함됩니다. 이는 기본값입니다.

  • property: 전환을 적용하고자 하는 특정 속성의 이름을 지정합니다. 여러 속성에 대해 전환을 적용하고자 할 경우, 쉼표로 구분하여 나열할 수 있습니다.

1
2
3
4
5
div {
  transition-property: background-color, transform;
  transition-duration: 2s, 1s;
  transition-timing-function: linear, ease-in;
}

위 예시에서는 div 요소에 대해 background-color와 transform 속성에 트랜지션이 적용 됩니다. background-color는 2초 동안, transform은 1초 동안 각각 전환 됩니다. 또한, background-color는 linear 타이밍 함수를, transform은 ease-in 타이밍 함수를 사용 합니다.

주의사항

  • 상, 하, 좌, 우 마진과 패딩을 적용할 수 있으며, 이는 요소의 크기와 페이지 내 위치에 영향을 줍니다.
transition-property는 특정 속성에 대한 전환을 지정할 때 사용
  • 전환의 지속 시간(transition-duration), 타이밍 함수(transition-timing-function), 그리고 전환 지연 시간(transition-delay)과 함께 사용됩니다.
모든 CSS 속성이 트랜지션 효과와 호환되는 것은 아니다.
  • 대체로 시각적 속성(예: opacity, transform)에 트랜지션을 적용하는 것이 더 효과적입니다.
주로 사용되는 부분
  • 트랜지션은 사용자 상호작용에 의해 스타일이 변경될 때(예: 호버(Hover), 포커스(Focus), 클릭(Click)) 주로 사용됩니다.

transition-duration

transition-duration 속성은 CSS에서 요소의 전환 효과가 지속되는 시간을 정의 합니다. 이 속성은 요소의 스타일이 어떻게 변화할지를 결정하는 transition-property와 함께 사용되어, 스타일 변화가 시작되어 완료되기까지의 지속 시간을 지정 합니다.

기본 문법

  • 아래의 코드에서 시간은 초(s)나 밀리초(ms) 단위로 지정됩니다. 예를 들어, 2s는 2초를 의미하고, 500ms는 500밀리초를 의미합니다.
1
transition-duration: 시간;   

전환 효과의 시간

  • 아래 코드에서는 div 요소의 opacity 속성에 대한 전환 효과가 1초 동안 지속 됩니다. 사용자가 어떤 상호작용(예: 마우스 오버(mouse over))을 통해 opacity 값이 변경되면, 이 변경은 부드럽게 1초에 걸쳐 일어납니다.
1
2
3
4
div {
  transition-property: opacity;
  transition-duration: 1s;
} 

다중 전환 효과 설정

  • 여러 전환 효과를 적용하고 싶을 때는 각각의 지속 시간을 쉼표로 구분하여 나열 합니다. 아래 코드에서는 div 요소의 opacity 전환 효과가 1초 동안, transform 전환 효과가 500밀리초 동안 각각 지속 됩니다.
1
2
3
4
div {
  transition-property: opacity, transform;
  transition-duration: 1s, 500ms;
}

주의해야할 점

지속 시간의 설정
  • 전환 효과의 지속 시간을 너무 짧게 설정하면 사용자가 변화를 인지하기 어려울 수 있고, 너무 길게 설정하면 사용자 경험에 방해가 될 수 있습니다. 적절한 지속 시간 선택이 중요합니다.
지정 규칙
  • transition-duration만 지정하고 transition-property를 지정하지 않으면, 기본값인 all이 적용되어 모든 속성에 대한 전환 효과가 적용 됩니다. 필요에 따라 특정 속성에만 전환 효과를 적용하는 것이 좋습니다.

transition-timing-function

transition-timing-function 속성은 CSS에서 전환(transition) 효과의 속도 곡선을 지정 합니다. 이 속성은 전환 효과의 시작과 끝에서 속도가 어떻게 변화할지 결정하여, 웹 페이지의 요소들이 보다 자연스럽고 동적으로 변화하도록 하며 기본적으로 아래와 같은 타이밍 함수와 함께 합니다.

타이밍 함수설명
linear시작부터 끝까지 일정한 속도로 변화합니다. 속도 곡선은 직선입니다.
ease시작할 때는 느리게, 중간에는 빠르게, 끝날 때는 다시 느리게 변화합니다. 대부분의 경우 자연스러운 움직임을 제공합니다.
ease-in시작할 때 느리며, 점점 빨라집니다. 속도 곡선은 점점 가파르게 상승합니다.
ease-out시작할 때는 빠르고, 끝날 때 느려집니다. 속도 곡선은 점점 완만해집니다.
ease-in-out시작과 끝에서는 느리고, 중간에는 빠르게 변화합니다. ease보다 더 부드러운 전환을 제공합니다.
cubic-bezier(n,n,n,n)사용자가 직접 곡선의 형태를 정의할 수 있게 해주는 함수입니다. 네 개의 값은 베지어 곡선의 제어점을 정의합니다.

예시

아래 코드는 div 요소의 배경색이 0.5초 동안 변할 때, ease-in-out 타이밍 함수를 사용하여 부드럽게 전환되도록 합니다. 또한, cubic-bezier 함수를 사용하여 더 세밀하게 속도 곡선을 조정할 수 있습니다 아래 코드는 div 요소가 변형될 때 사용자가 정의한 특별한 속도 곡선을 따라 변화하도록 합니다.

1
2
3
div {
  transition: background-color 0.5s ease-in-out;
}
1
2
3
div {
  transition: transform 0.5s cubic-bezier(0.25, 0.1, 0.25, 1);
}

transition-timing-function 속성을 사용함으로써, 요소의 전환 효과를 더욱 생생하고 매력적으로 만들 수 있으며, 사용자에게 보다 개선된 인터랙티브 경험을 제공할 수 있습니다.


transition-delay

transition-delay 속성은 CSS에서 요소의 전환 효과가 시작하기까지의 지연 시간을 설정 하는 데 사용됩니다. 이 속성은 전환 효과가 즉시 시작되지 않고 지정된 시간만큼 지연된 후 시작 되도록 합니다. transition-delay는 전환 효과를 더욱 동적이고 흥미롭게 만들어 줄 수 있으며, 사용자 인터페이스의 시각적 피드백을 개선하는 데 유용하게 사용될 수 있습니다.

기본 구문

아래 코드에서 시간은 초(s) 또는 밀리초(ms) 단위로 지정될 수 있습니다. 예를 들어, transition-delay: 2s;는 전환 효과가 2초 후에 시작됨을 의미합니다.

1
transition-delay: 시간;

사용 예시

1
2
3
4
5
6
7
8
9
.element {
  background-color: blue;
  transition: background-color 1s;
  transition-delay: 500ms;
}

.element:hover {
  background-color: red;
}

위의 예시에서는 .element 요소에 마우스를 올리면 배경색이 파란색에서 빨간색으로 변경 됩니다. transition-delay 속성이 500ms로 설정 되어 있기 때문에, 마우스를 올린 후 실제 전환 효과가 시작되기까지 0.5초의 지연 시간이 발생 합니다.

함수에게 주는 영향
  • transition-delay는 전환 효과가 시작되기까지의 지연 시간만을 제어 하며, 전환 효과 자체의 지속 시간(duration)이나 타이밍 함수(timing function)에는 영향을 주지 않습니다.
음수 값의 사용
  • 음수 값을 사용할 경우, 전환 효과는 지정된 시간만큼 이미 진행된 상태에서 시작 됩니다. 예를 들어, transition-delay: -1s;를 사용하면 전환 효과는 지정된 지연 시간 1초 전에 시작되며, 사용자에게는 전환 효과가 즉시 시작된 것처럼 보일 수 있습니다.
순차적 발생
  • 여러 전환 효과를 동시에 적용할 경우, 각 전환 효과에 대해 다른 transition-delay 값을 지정하여 효과가 순차적으로 발생하도록 할 수 있습니다.
This post is licensed under CC BY 4.0 by the author.