이번 장에서는 transition
에 대해서 알아보도록 하겠습니다. transition
이란 CSS 속성값이 변할 때, 값의 변화가 일정 시간에 걸쳐 일어나도록 하는 것을 말합니다. 여러 속성들은 차근차근 살펴보도록 하고 가벼운 예제를 통해 transition
이 무엇인지 경험해 보도록 하죠.
<!DOCTYPE html>
<html>
<head>
<title>Transition Test</title>
<style>
div{
width: 100px;
height: 100px;
background-color: red;
}
div:hover{
width: 300px;
height: 300px;
background-color: blue;
}
</style>
</head>
<body>
<div>hello world</div>
</body>
</html>
가로, 세로 100px에 빨강 배경색을 가진 div가 하나 있습니다. div에 마우스를 옮기게 되면 가로, 세로 300px에 파랑 배경색을 가진 div로 변하게 되는 걸 확인할 수 있습니다.
여기서 style에 코드 한 줄만 추가해볼까요? 지금은 이 코드가 무엇을 의미하는지 모르셔도 됩니다.
transition: all 2s;
그 결과,
즉시 변경되면 속성값들이 시간을 두고 천천히 바뀌는 걸 확인할 수 있습니다. 애니메이션처럼 말이죠. 이것이 바로 transition
의 마법입니다. transition
에 대해 함께 더 알아보도록 합시다.
delay
가 무슨 뜻인가요? 맞습니다. 한국어로 번역하면 '지연'이라는 뜻입니다. 말 그대로 transition
이 일어날 때 얼마만큼 기다렸다가 실행할지 결정해주는 속성입니다.delay
는 transition
이 일어나기 전까지 얼마나 기다릴지 지정해 주는 것입니다. 그렇기 때문에 속성값으로는 시간이 들어가게 됩니다. 초 단위를 나타내는 s
나 밀리 초를 나타내는 ms
로 나타냅니다. 지정해 주지 않을 시에는 0s
을 의미하며 지연 없이 바로 transition
이 일어납니다.
<!DOCTYPE html>
<html>
<head>
<title>Transition Test</title>
<style>
body{
display: flex;
}
div{
width: 100px;
height: 100px;
background: red;
font: bold;
color: white;
margin-right: 10px;
display: flex;
justify-content: center;
align-items: center;
}
.first{
transition-delay: 0s;
}
.second{
transition-delay: 1s;
}
.third{
transition-delay: 2s;
}
div:hover{
background: blue;
}
</style>
</head>
<body>
<div class="first">0초</div>
<div class="second">1초</div>
<div class="third">2초</div>
</body>
</html>