본문 바로가기
CSS

[CSS] Transition

by 기리의 개발로그 2022. 3. 12.

transition

transition 속성은 CSS 속성이 변화할 때 서서히 변화시키는 속성이다.


속성 설명 기본값
transition-property transition이 적용될 속성 지정 all
transition-duration transition이 일어나는 지속시간(초, 밀리초) 0s
transition-delay 속성이 변화한 시점과 transition이 실제시작하는 사이에 대기 시간(초, 밀리초) 0s
transition-timing-function transition 효과를 위한 함수 지정 ease
transition transition 축약형

transition-property

transition-property 속성은 transition이 적용될 CSS 속성을 지정한다.


속성 설명
none 속성을 지정하지 않음
all 모든 속성에 적용
property 속성 지정, 여러 개의 경우 콤마(,)로 구분
inherit 부모 요소의 속성 값을 상속
<html>
    <head>
        <style>
            div {
                width: 200px;
                height: 200px;
                margin: 2px;
                background-color: red;
            }
            .property {
                transition-property: background-color;
                transition-duration: 3s;
            }
            .property1 {
                transition-property: width;
                transition-duration: 3s;
            }
            .all {
                transition-property: all;
                transition-duration: 3s;
            }
            input:checked ~div, div:hover {
                background-color: blue;
                width: 300px;
            } 
        </style>
    </head>
    <body>
        <h1>transition-property</h1>
        <input type="checkbox">
        <div class="property">background-color</div>
        <div class="property1">width</div>
        <div class="all">all</div>
    </body>
</html>

See the Pen gObyJyv by 양상길 (@omfazpiq) on CodePen.


transition-duration

transition-duration 속성은 transition이 일어나는 지속시간을 지정한다.(s, ms)
transition-duration 속성은 transition-property 속성과 1:1로 대응한다.

<html>
    <head>
        <style>
            div {
                width: 200px;
                height: 200px;
                margin: 2px;
                background-color: red;
            }
            .property {
                transition-property: background-color, width;
                transition-duration: 3s, 1s;
                box-sizing: border-box;
            }
            .property1 {
                transition-property: background-color, width, border;
                transition-duration: 4s, 2s, 0.5s;
                box-sizing: border-box;
            }
            .property2 {
                transition-property: background-color, width, border;
                transition-duration: 3s;
                box-sizing: border-box;
            }
            input:checked ~div, div:hover {
                background-color: blue;
                width: 300px;
                border: 8px dotted white;
            } 
        </style>
    </head>
    <body>
        <h1>transition-duration</h1>
        <input type="checkbox">
        <div class="property">3s, 1s</div>
        <div class="property1">4s, 2s, 0.5s</div>
        <div class="property2">3s</div>
    </body>
</html>

See the Pen zYxXQQG by 양상길 (@omfazpiq) on CodePen.


transition-timing-function

transition-timing-function 속성은 transition 효과를 지정한다.


속성 설명
ease 느리게 시작하여 점점 빨라졌다가 느리게 종료(기본값)
linear 일정한 속도
ease-in 느리게 시작하여 특정 속도에 도달하면 일정하게 유지
ease-out 일정한 속도로 시작하다가 느려지면서 종료
ease-in-out 느리게 시작하여 점점 느려지면서 종료
<html>
    <head>
        <style>
            div {
                width: 100px;
                height: 100px;
                margin: 10px;
                background-color: red;
                transition-property: all;
                transition-duration: 1s;
            }
            .function {
                transition-timing-function: ease;
            }
            .function1 {
                transition-timing-function: linear;
            }
            .function2 {
                transition-timing-function: ease-in;
            }
            .function3 {
                transition-timing-function: ease-out;
            }
            .function4 {
                transition-timing-function: ease-in-out;
            }
            input:checked ~div, div:hover {
                background-color: blue;
                width: 300px;
            } 
        </style>
    </head>
    <body>
        <h1>transition-timing-function</h1>
        <input type="checkbox">
        <div class="function">ease</div>
        <div class="function1">linear</div>
        <div class="function2">ease-in</div>
        <div class="function3">ease-out</div>
        <div class="function4">ease-in-out</div>
    </body>
</html>

See the Pen NWPmVVO by 양상길 (@omfazpiq) on CodePen.


transition-delay

transition-delay 속성은 속성이 변화한 시점과 transition이 실제 시작하는 사이에 대기 시간을 지정한다.(s, ms)

<html>
    <head>
        <style>
            div {
                width: 200px;
                height: 200px;
                margin: 2px;
                background-color: red;
                transition-property: all;
                transition-duration: 1s;
            }
            .delay {
                transition-delay: 0.5s;
            }
            .delay1 {
                transition-delay: 1s;
            }
            .delay2 {
                transition-delay: 2s;
            }
            input:checked ~div, div:hover {
                background-color: blue;
                width: 300px;
            } 
        </style>
    </head>
    <body>
        <h1>transition-delay</h1>
        <input type="checkbox">
        <div class="delay">0.5s</div>
        <div class="delay1">1s</div>
        <div class="delay2">2s</div>
    </body>
</html>

See the Pen YzPMbox by 양상길 (@omfazpiq) on CodePen.


transition

transition 속성은 transition 속성을 한 번에 지정할 수 있는 축약형이다.

    transition: property duration function delay
<html>
    <head>
        <style>
            div {
                width: 400px;
                height: 100px;
                margin: 2px;
                background-color: red;
            }
            .transition {
                transition: 1s;
            }
            .transition1 {
                transition: all 2s;
            }
            .transition2 {
                transition: width 1s 1s;
            }
            .transition3 {
                transition: 1s ease-in 0.5s;
            }
            .transition4 {
                transition: all 1s ease 1s;
            }
            input:checked ~div, div:hover {
                background-color: blue;
                width: 600px;
            } 
        </style>
    </head>
    <body>
        <h1>transition</h1>
        <input type="checkbox">
        <div class="transition">duration(1s)</div>
        <div class="transition1">property(all) duration(2s)</div>
        <div class="transition2">property(width) duration(1s) delay(1s)</div>
        <div class="transition3">duration(1s) function(ease-in) delay(0.5s)</div>
        <div class="transition4">property(all) duration(1s) function(ease) delay(1s)</div>
    </body>
</html>

See the Pen ZEYZNgz by 양상길 (@omfazpiq) on CodePen.

반응형

'CSS' 카테고리의 다른 글

[CSS] Flexbox(1)  (81) 2022.03.14
[CSS] Transform  (65) 2022.03.13
[CSS] Gradient  (66) 2022.03.11
[CSS] Float  (33) 2022.03.10
[CSS] Position  (18) 2022.03.08

댓글