트랜지션 속성 및 구문 탐색
이 단계에서는 CSS 트랜지션 속성을 더 자세히 살펴보고, 더 복잡하고 정밀한 트랜지션을 만들기 위한 전체 구문에 대해 배웁니다.
styles.css 파일을 업데이트하여 다양한 트랜지션 속성을 탐색합니다:
.container {
display: flex;
justify-content: center;
align-items: center;
height: 100vh;
gap: 20px;
}
.box {
width: 100px;
height: 100px;
background-color: #3498db;
display: flex;
justify-content: center;
align-items: center;
color: white;
cursor: pointer;
/* Full transition syntax */
transition-property: background-color, transform, border-radius;
transition-duration: 0.5s, 0.3s, 0.4s;
transition-timing-function: ease-in-out, linear, ease;
transition-delay: 0s, 0.1s, 0s;
}
.box:hover {
background-color: #2980b9;
transform: scale(1.2) rotate(15deg);
border-radius: 50%;
}
트랜지션 속성을 자세히 살펴보겠습니다:
-
transition-property: 트랜지션할 CSS 속성을 지정합니다.
- 쉼표로 구분된 여러 속성이 될 수 있습니다.
- 변경 가능한 모든 속성을 트랜지션하려면
all을 사용할 수 있습니다.
-
transition-duration: 트랜지션이 걸리는 시간을 설정합니다.
- 서로 다른 속성에 대해 서로 다른 지속 시간을 가질 수 있습니다.
- 초 (s) 또는 밀리초 (ms) 단위로 지정됩니다.
-
transition-timing-function: 트랜지션의 속도 곡선을 제어합니다.
linear: 일정한 속도
ease-in: 느리게 시작하여 가속
ease-out: 빠르게 시작하여 감속
ease-in-out: 느리게 시작하고 종료
-
transition-delay: 트랜지션이 시작되기 전에 지연을 추가합니다.
- 순차적 또는 엇갈린 효과를 만드는 데 유용합니다.
또는, 단축 속성 transition을 사용할 수 있습니다:
.box {
transition:
background-color 0.5s ease-in-out,
transform 0.3s linear 0.1s,
border-radius 0.4s ease;
}
시연을 위해 여러 상자를 포함하도록 index.html을 업데이트합니다:
<body>
<div class="container">
<div class="box">Box 1</div>
<div class="box">Box 2</div>
<div class="box">Box 3</div>
</div>
</body>
상자에 마우스를 올리면 다음을 볼 수 있습니다:
- 서로 다른 트랜지션 속성
- 다양한 타이밍 및 지연
- 여러 변환이 동시에 발생