hover
와 같은 가상 클래스 선택자(Pseudo-Classes) 또는 onclick
같은 event
처럼 JavaScript의 부수적인 액션에 의해 발동한다. 즉, div
에 기본 속성과 transition을 준 뒤, div:hover
에 변화를 주고싶은 속성값을 정해주변 hover
시, 변화가 나타난다)CSS 프로퍼티명을 지정
한다. (지정하지 않는 경우 모든 프로퍼티가 트랜지션의 대상이 된다.) div { width: 100px; height: 50px; background-color: red; margin-bottom: 10px; transition-property: width, background-color; transition-duration: 2s, 2s; } div:hover { width: 300px; background-color: blue; }
/* 예시(1) */ div { width: 100px; height: 50px; background-color: red; margin-bottom: 10px; transition-property: width, background-color; transition-duration: 2s, 2s; /* transition: width 2s, background-color 2s; */ } div:hover { width: 300px; background-color: blue; } /* 예시(2) */ div { width: 100px; height: 50px; color: white; background-color: red; /* width, opacity 2개의 속성에 변화를 줄 예정 */ transition-property: width, opacity; } div:nth-child(1) { transition-duration: 0.5s; /* 첫번째 div는 width, opacity 모두 0.5초 기간동안 변화 발생*/ } div:nth-child(2) { transition-duration: 2s, 1s; /* 두번째 div는 width는 2초, opacity는 1초 기간동안 변화 발생 ❗ transition-duration 프로퍼티값은 transition-property 프로퍼티값과 1:1 대응한다 (2s = width, 1s = opacity) */ } /* hover가 되면 width와 opacity에 지정한 값만큼 속성 변화가 생긴다*/ div:hover { width: 300px; opacity: .1; }
참고 사이트: https://poiemaweb.com/css3-transition
/* 모든 div의 기본 값 적용(transition속성과 기간 명시) */ div { width: 100px; transition: width 1s; } /* 첫 번째 div는 linear속도로 변화 발생 */ #div_01 { transition-timing-function: linear; } /* 두 번째 div는 ease-in-out속도로 변화 발생 */ #div_02 { transition-timing-function: ease-in-out; } /* hover시, 지정한 속성값처럼 변화가 발생한다 */ div:hover { width: 300px; }
transition-delay 속성은 전환(transition) 효과가 나타나기 전까지의 지연 시간을 설정하며, 전환(transition) 효과는 이 메소드로 설정된 시간이 흐른 뒤에야 비로소 시작된다.
#resize { height: 100px; width: 150px; transition: width 1s, height 2s; transition-delay: 1s; } #resize:hover { width: 300px; height: 300px; }