λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°
Stylesheet/CSS

[CSS3]CSS μ „ν™˜νš¨κ³Ό μ™„λ²½ κ°€μ΄λ“œ: μ›Ήμ‚¬μ΄νŠΈμ— 생동감을 λ”ν•˜λŠ” λΉ„λ°€!

by YJ Dev 2024. 5. 29.
728x90
λ°˜μ‘ν˜•
SMALL

CSS μ „ν™˜νš¨κ³ΌλŠ” μ›Ήμ‚¬μ΄νŠΈμ˜ μš”μ†Œκ°€ μƒνƒœλ₯Ό λ³€κ²½ν•  λ•Œ λΆ€λ“œλŸ½κ²Œ λ³€ν•˜λ„λ‘ λ§Œλ“€μ–΄μ£ΌλŠ” κ°•λ ₯ν•œ λ„κ΅¬μž…λ‹ˆλ‹€. μ΄λŸ¬ν•œ μ „ν™˜νš¨κ³ΌλŠ” μ›Ήμ‚¬μ΄νŠΈμ— 생동감을 λ”ν•˜κ³  μ‚¬μš©μž κ²½ν—˜μ„ ν–₯μƒν•˜λŠ” 데 μ€‘μš”ν•œ 역할을 ν•©λ‹ˆλ‹€. 이 ν¬μŠ€νŒ…μ—μ„œλŠ” CSS μ „ν™˜νš¨κ³Ό transition μ†μ„±μ˜ κΈ°λ³Έ κ°œλ…λΆ€ν„° κ³ κΈ‰ μ‚¬μš©λ²•κΉŒμ§€ μžμ„Ένžˆ λ‹€λ€„λ³΄κ² μŠ΅λ‹ˆλ‹€.

CSS μ „ν™˜ 효과 TRANSITION

CSS μ „ν™˜νš¨κ³Όμ˜ κΈ°λ³Έ μ΄ν•΄πŸŽˆ

μ „ν™˜νš¨κ³Όμ˜ μ •μ˜μ™€ μž‘λ™ 원리 🌐

CSS μ „ν™˜νš¨κ³ΌλŠ” μš”μ†Œμ˜ μŠ€νƒ€μΌμ΄ 변경될 λ•Œ κ·Έ λ³€ν™”λ₯Ό μ§€μ •λœ μ‹œκ°„ λ™μ•ˆ μ• λ‹ˆλ©”μ΄μ…˜μ²˜λŸΌ λ³΄μ—¬μ£ΌλŠ” κΈ°λŠ₯μž…λ‹ˆλ‹€. 이λ₯Ό 톡해 μ‚¬μš©μžμ—κ²Œ λΆ€λ“œλŸ½κ³  μžμ—°μŠ€λŸ¬μš΄ μ‹œκ°μ  κ²½ν—˜μ„ μ œκ³΅ν•©λ‹ˆλ‹€.

transition μ†μ„±μ˜ κΈ°λ³Έ ꡬ문 πŸ› οΈ

.element {
    transition: property duration timing-function delay;
}

μ£Όμš” 속성⭐

  • transition-property: μ „ν™˜ 효과λ₯Ό μ μš©ν•  CSS 속성 (예: width, height, background-color λ“±)
  • transition-duration: μ „ν™˜ νš¨κ³Όκ°€ μ™„λ£Œλ˜λŠ” 데 κ±Έλ¦¬λŠ” μ‹œκ°„ (예: 0.5s, 2s)
  • transition-timing-function: μ „ν™˜ 효과의 속도 곑선 (예: ease, linear, ease-in, ease-out, ease-in-out)
  • transition-delay: μ „ν™˜ νš¨κ³Όκ°€ μ‹œμž‘λ˜κΈ° 전에 κΈ°λ‹€λ¦¬λŠ” μ‹œκ°„ (예: 0s, 1s)

μ „ν™˜νš¨κ³Ό transition μ£Όμš” μ†μ„±πŸŒŸ

trasnsition-property

transition-propertyλŠ” CSS μ „ν™˜νš¨κ³Όλ₯Ό μ μš©ν•  속성을 μ§€μ •ν•˜λŠ” 데 μ‚¬μš©λ©λ‹ˆλ‹€. 이 속성을 μ‚¬μš©ν•˜λ©΄ μ–΄λ–€ CSS 속성에 λŒ€ν•΄ μ „ν™˜ 효과λ₯Ό μ μš©ν• μ§€λ₯Ό λͺ…μ‹œμ μœΌλ‘œ 지정할 수 μžˆμŠ΅λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄, λ„ˆλΉ„(width), 높이(height), 배경색(background-color) λ“±μ˜ 속성에 λŒ€ν•΄ μ „ν™˜ 효과λ₯Ό μ μš©ν•˜κ³ μž ν•  λ•Œ μ‚¬μš©ν•©λ‹ˆλ‹€.

μ‚¬μš© 방법

.element {
    transition-property: property1, property2, ...;
}

μ—¬κΈ°μ„œ property1, property2 등은 μ „ν™˜ 효과λ₯Ό μ μš©ν•˜κ³ μž ν•˜λŠ” CSS 속성을 λ‚˜νƒ€λƒ…λ‹ˆλ‹€. μ—¬λŸ¬ 개의 속성을 지정할 λ•ŒλŠ” μ‰Όν‘œ(,)둜 κ΅¬λΆ„ν•˜μ—¬ λ‚˜μ—΄ν•©λ‹ˆλ‹€.

μ˜ˆμ‹œ

λ‹€μŒμ€ λ„ˆλΉ„(width)와 높이(height) 속성에 λŒ€ν•΄ μ „ν™˜ 효과λ₯Ό μ μš©ν•˜λŠ” μ˜ˆμ‹œμž…λ‹ˆλ‹€.

.element {
    width: 100px;
    height: 100px;
    background-color: blue;
    transition-property: width, height;
    /* λ‹€μŒκ³Ό 같이 μΆ•μ•½ν•΄μ„œ μ‚¬μš©ν•  μˆ˜λ„ μžˆμŠ΅λ‹ˆλ‹€. */
    /* transition-property: all; */
    /* λͺ¨λ“  속성에 λŒ€ν•΄ μ „ν™˜ 효과λ₯Ό μ μš©ν•©λ‹ˆλ‹€. */
}

.element:hover {
    width: 200px;
    height: 200px;
}

이 μ½”λ“œμ—μ„œλŠ” .element 클래슀λ₯Ό 가진 μš”μ†Œμ— 마우슀λ₯Ό 올리면 λ„ˆλΉ„μ™€ 높이가 200px둜 λ³€κ²½λ©λ‹ˆλ‹€. μ΄λ•Œ,transition-property 속성이 width와 height둜 μ„€μ •λ˜μ–΄ μžˆμœΌλ―€λ‘œ λ„ˆλΉ„μ™€ 높이 μ†μ„±μ˜ λ³€κ²½μ—λ§Œ μ „ν™˜ νš¨κ³Όκ°€ μ μš©λ©λ‹ˆλ‹€.

trasnsition-property

κΈ°λ³Έ κ°’

transition-property의 κΈ°λ³Έ 값은 allμž…λ‹ˆλ‹€. μ΄λŠ” λͺ¨λ“  CSS 속성에 λŒ€ν•΄ μ „ν™˜ 효과λ₯Ό μ μš©ν•¨μ„ μ˜λ―Έν•©λ‹ˆλ‹€. κ·ΈλŸ¬λ‚˜ 일반적으둜 λͺ…μ‹œμ μœΌλ‘œ 속성을 μ§€μ •ν•˜λŠ” 것이 ꢌμž₯λ©λ‹ˆλ‹€. μ΄λ ‡κ²Œ ν•˜λ©΄ λΆˆν•„μš”ν•œ μ„±λŠ₯ μ €ν•˜λ₯Ό 방지할 수 μžˆμŠ΅λ‹ˆλ‹€.

transition-propertyλ₯Ό λͺ…μ‹œμ μœΌλ‘œ μ‚¬μš©ν•˜μ—¬ μ „ν™˜ 효과λ₯Ό μ μš©ν•  속성을 μ„ νƒν•˜λ©΄ μš”μ†Œμ˜ μƒνƒœ 변화에 따라 ν•΄λ‹Ή μ†μ„±μ—λ§Œ μ „ν™˜ νš¨κ³Όκ°€ μ μš©λ˜μ–΄ 효율적으둜 μ• λ‹ˆλ©”μ΄μ…˜μ„ μ œμ–΄ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

transition-duration

transition-duration 속성은 CSS μ „ν™˜ νš¨κ³Όκ°€ μ™„λ£Œλ˜λŠ” 데 κ±Έλ¦¬λŠ” μ‹œκ°„μ„ μ§€μ •ν•˜λŠ” 데 μ‚¬μš©λ©λ‹ˆλ‹€. 이 속성을 μ‚¬μš©ν•˜λ©΄ μ „ν™˜ νš¨κ³Όκ°€ μ–Όλ§ˆ λ™μ•ˆ μ§€μ†λ˜μ–΄μ•Ό ν•˜λŠ”μ§€λ₯Ό μ •ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

μ‚¬μš© 방법

.element {
    transition-duration: time;
}

μ—¬κΈ°μ„œ time은 μ „ν™˜ νš¨κ³Όκ°€ μ™„λ£Œλ˜λŠ” μ‹œκ°„μ„ λ‚˜νƒ€λ‚΄λŠ” κ°’μž…λ‹ˆλ‹€. 보톡 초(s) λ‹¨μœ„λ‘œ μ§€μ •ν•˜λ©°, λΆ€λ™μ†Œμˆ˜μ μœΌλ‘œλ„ ν‘œν˜„ν•  수 μžˆμŠ΅λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄, 0.5s, 1s, 2s와 같이 μ‚¬μš©ν•©λ‹ˆλ‹€.

μ˜ˆμ‹œ

λ‹€μŒμ€ λ„ˆλΉ„(width) 속성에 λŒ€ν•œ μ „ν™˜ νš¨κ³Όκ°€ 0.5초 λ™μ•ˆ μ§€μ†λ˜λ„λ‘ μ„€μ •ν•˜λŠ” μ˜ˆμ‹œμž…λ‹ˆλ‹€.

.element {
    width: 100px;
    height: 100px;
    background-color: blue;
    transition-property: width;
    transition-duration: 0.5s;
}

.element:hover {
    width: 200px;
}

이 μ½”λ“œμ—μ„œλŠ”. element 클래슀λ₯Ό 가진 μš”μ†Œμ— 마우슀λ₯Ό 올리면 λ„ˆλΉ„κ°€ 200px둜 λ³€κ²½λ©λ‹ˆλ‹€. transition-duration 속성이 0.5s둜 μ„€μ •λ˜μ–΄ μžˆμœΌλ―€λ‘œ λ„ˆλΉ„κ°€ λ³€κ²½λ˜λŠ” λ™μ•ˆ 0.5초 λ™μ•ˆ λΆ€λ“œλŸ½κ²Œ μ• λ‹ˆλ©”μ΄μ…˜μ΄ μ μš©λ©λ‹ˆλ‹€.

transition-duration

transition-duration μ†μ„±μ˜ κΈ°λ³Έ 값은 0sμž…λ‹ˆλ‹€. μ΄λŠ” μ „ν™˜ νš¨κ³Όκ°€ μ¦‰μ‹œ λ°œμƒν•¨μ„ μ˜λ―Έν•©λ‹ˆλ‹€. κ·ΈλŸ¬λ‚˜ 일반적으둜 μ „ν™˜ νš¨κ³Όκ°€ λ°”λ‘œ λ°œμƒν•˜λŠ” 것이 μ•„λ‹ˆλΌ λͺ‡ 초 λ™μ•ˆ λΆ€λ“œλŸ½κ²Œ μ§„ν–‰λ˜λ„λ‘ μ„€μ •ν•˜λŠ” 것이 μΌλ°˜μ μž…λ‹ˆλ‹€.

μ „ν™˜ 효과의 지속 μ‹œκ°„μ„ μ‘°μ ˆν•˜μ—¬ μš”μ†Œμ˜ μƒνƒœ 변화에 따라 μ• λ‹ˆλ©”μ΄μ…˜μ΄ μ–Όλ§ˆ λ™μ•ˆ μ§€μ†λ˜μ–΄μ•Ό ν•˜λŠ”μ§€λ₯Ό μ‘°μ ˆν•  수 μžˆμŠ΅λ‹ˆλ‹€. 이λ₯Ό 톡해 μ‚¬μš©μž κ²½ν—˜μ„ λ”μš± ν–₯상할 수 μžˆμŠ΅λ‹ˆλ‹€.

transition-timing-function

transition-timing-function 속성은 CSS μ „ν™˜ 효과의 속도 곑선을 μ§€μ •ν•˜λŠ” 데 μ‚¬μš©λ©λ‹ˆλ‹€. 이 속성을 μ‚¬μš©ν•˜λ©΄ μ „ν™˜ νš¨κ³Όκ°€ μ§„ν–‰λ˜λŠ” λ™μ•ˆ μ‹œκ°„μ— 따라 속도가 μ–΄λ–»κ²Œ 변화할지λ₯Ό μ œμ–΄ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

μ‚¬μš© 방법

.element {
    transition-timing-function: timing-function;
}

μ—¬κΈ°μ„œ timing-function은 속도 곑선을 μ •μ˜ν•˜λŠ” ν•¨μˆ˜μž…λ‹ˆλ‹€. λͺ‡ 가지 ν‘œμ€€ ν•¨μˆ˜ 외에도 μ‚¬μš©μž μ •μ˜ ν•¨μˆ˜λ₯Ό μ •μ˜ν•  μˆ˜λ„ μžˆμŠ΅λ‹ˆλ‹€.

ν‘œμ€€ 속도 ν•¨μˆ˜

  • ease (κΈ°λ³Έκ°’): 느리게 μ‹œμž‘λ˜μ–΄ 쀑간에 빨라지고, λ‹€μ‹œ λŠλ €μ§€λŠ” 속도 κ³‘μ„ μž…λ‹ˆλ‹€.
  • linear: μΌμ •ν•œ μ†λ„λ‘œ μ§„ν–‰λ˜λŠ” μ„ ν˜• 속도 κ³‘μ„ μž…λ‹ˆλ‹€.
  • ease-in:천천히 μ‹œμž‘λ˜μ–΄ 점점 λΉ¨λΌμ§€λŠ” 속도 κ³‘μ„ μž…λ‹ˆλ‹€.
  • ease-out:λΉ λ₯΄κ²Œ μ‹œμž‘λ˜μ–΄ 천천히 λŠλ €μ§€λŠ” 속도 κ³‘μ„ μž…λ‹ˆλ‹€.
  • ease-in-out: 천천히 μ‹œμž‘λ˜μ–΄ 쀑간에 빨라지고, λ‹€μ‹œ 천천히 λŠλ €μ§€λŠ” 속도 κ³‘μ„ μž…λ‹ˆλ‹€.

μ‚¬μš©μž μ •μ˜ 속도 ν•¨μˆ˜

μ‚¬μš©μžλŠ” cubic-bezier() ν•¨μˆ˜λ₯Ό μ‚¬μš©ν•˜μ—¬ μžμ‹ λ§Œμ˜ 속도 곑선을 μ •μ˜ν•  μˆ˜λ„ μžˆμŠ΅λ‹ˆλ‹€. 이 ν•¨μˆ˜λŠ” λ„€ 개의 숫자(0κ³Ό 1 μ‚¬μ΄μ˜ κ°’)λ₯Ό 받아듀이며, 각각은 속도 κ³‘μ„ μ˜ μ œμ–΄μ μ„ λ‚˜νƒ€λƒ…λ‹ˆλ‹€.


예λ₯Ό λ“€μ–΄, λ‹€μŒκ³Ό 같이 μ‚¬μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

.element {
    transition-timing-function: cubic-bezier(0.1, 0.7, 1.0, 0.1);
}

μ˜ˆμ‹œ

λ‹€μŒμ€ λ„ˆλΉ„(width) 속성에 λŒ€ν•œ μ „ν™˜ 효과의 속도 곑선을 ease-in-out으둜 μ„€μ •ν•˜λŠ” μ˜ˆμ‹œμž…λ‹ˆλ‹€.

.element {
    width: 100px;
    height: 100px;
    background-color: blue; 
    transition-property: width;
    transition-duration: 0.5s;
    transition-timing-function: ease-in-out;
}

.element:hover {
    width: 200px;
}

이 μ½”λ“œμ—μ„œλŠ”. element 클래슀λ₯Ό 가진 μš”μ†Œμ— 마우슀λ₯Ό 올리면 λ„ˆλΉ„κ°€ 200px둜 λ³€κ²½λ©λ‹ˆλ‹€. transition-timing-function 속성이 ease-in-out으둜 μ„€μ •λ˜μ–΄ μžˆμœΌλ―€λ‘œ, μ „ν™˜ νš¨κ³Όκ°€ 천천히 μ‹œμž‘λ˜μ–΄ 쀑간에 빨라지고, λ‹€μ‹œ 천천히 λŠλ €μ§‘λ‹ˆλ‹€.

속도 곑선을 μ‘°μ ˆν•˜μ—¬ μ „ν™˜ 효과의 μ• λ‹ˆλ©”μ΄μ…˜μ„ λ”μš± λΆ€λ“œλŸ½κ²Œ λ§Œλ“€ 수 μžˆμŠ΅λ‹ˆλ‹€.

transition-timing-function

transition-delay

transition-delay 속성은 CSS μ „ν™˜ νš¨κ³Όκ°€ μ‹œμž‘λ˜λŠ” 지연 μ‹œκ°„μ„ μ„€μ •ν•˜λŠ” 데 μ‚¬μš©λ©λ‹ˆλ‹€. 이 속성을 μ‚¬μš©ν•˜λ©΄ μš”μ†Œμ˜ νŠΉμ • μƒνƒœκ°€ λ³€κ²½λœ ν›„ 일정 μ‹œκ°„μ΄ μ§€λ‚œ 후에 μ „ν™˜ νš¨κ³Όκ°€ λ°œμƒν•˜λ„λ‘ ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

μ‚¬μš© 방법

.element {
    transition-delay: time;
}

μ—¬κΈ°μ„œ time은 μ „ν™˜ νš¨κ³Όκ°€ μ‹œμž‘λ˜κΈ° μ „μ˜ 지연 μ‹œκ°„μ„ λ‚˜νƒ€λ‚΄λŠ” κ°’μž…λ‹ˆλ‹€. 이 값은 초(s) λ‹¨μœ„λ‘œ μ§€μ •λ˜λ©°, λΆ€λ™μ†Œμˆ˜μ μœΌλ‘œλ„ ν‘œν˜„ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

μ˜ˆμ‹œ

λ‹€μŒμ€ λ„ˆλΉ„(width) 속성에 λŒ€ν•œ μ „ν™˜ νš¨κ³Όκ°€ 마우슀λ₯Ό 올린 ν›„ 1초 μ§€μ—°λœ ν›„ λ°œμƒν•˜λŠ” μ˜ˆμ‹œμž…λ‹ˆλ‹€.

.element {
    width: 100px;
    height: 100px;
    background-color: blue;
    transition-property: width;
    transition-duration: 0.5s;
    transition-delay: 1s;
}

.element:hover {
    width: 200px;
}

이 μ½”λ“œμ—μ„œλŠ” .element 클래슀λ₯Ό 가진 μš”μ†Œμ— 마우슀λ₯Ό 올리면 λ„ˆλΉ„κ°€ 200px둜 λ³€κ²½λ©λ‹ˆλ‹€. κ·ΈλŸ¬λ‚˜ 이 변경은 마우슀λ₯Ό 올리고 1초 후에 λ°œμƒν•©λ‹ˆλ‹€. transition-delay 속성이 1s둜 μ„€μ •λ˜μ–΄ μžˆμœΌλ―€λ‘œ μ „ν™˜ νš¨κ³Όκ°€ λ°œμƒν•˜κΈ°κΉŒμ§€ 1초 λ™μ•ˆμ˜ 지연이 μžˆμŠ΅λ‹ˆλ‹€.

κΈ°λ³Έ κ°’

transition-delay μ†μ„±μ˜ κΈ°λ³Έ 값은 0sμž…λ‹ˆλ‹€. μ΄λŠ” μ „ν™˜ νš¨κ³Όκ°€ μ¦‰μ‹œ μ‹œμž‘λ¨μ„ μ˜λ―Έν•©λ‹ˆλ‹€. κ·ΈλŸ¬λ‚˜ 지연을 μ„€μ •ν•¨μœΌλ‘œμ¨ νŠΉμ •ν•œ μ‹œκ°„ 이후에 μ „ν™˜ νš¨κ³Όκ°€ λ°œμƒν•˜λ„λ‘ μ‘°μ ˆν•  수 μžˆμŠ΅λ‹ˆλ‹€.

transition-delay 속성을 μ‚¬μš©ν•˜μ—¬ μš”μ†Œμ˜ μƒνƒœ 변화에 λŒ€ν•œ μ „ν™˜ νš¨κ³Όκ°€ λ°œμƒν•˜κΈ° 전에 지연을 μΆ”κ°€ν•  수 μžˆμŠ΅λ‹ˆλ‹€. 이λ₯Ό 톡해 μ „ν™˜ 효과λ₯Ό μ‘°μ ˆν•˜κ³ , μ‚¬μš©μž κ²½ν—˜μ„ κ°œμ„ ν•˜κ³ , μ• λ‹ˆλ©”μ΄μ…˜μ„ λ”μš± λ‹€μ–‘ν•˜κ²Œ μ œμ–΄ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

CSS μ „ν™˜νš¨κ³Όμ˜ 예제🎬

색상 μ „ν™˜ 효과 🌈

.button {
    background-color: blue;
    transition: background-color 0.5s ease;
    padding: 10px 20px;
    color: white;
    border: none;
    border-radius: 5px;
    cursor: pointer;
    font-size: 16px;
}

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

css transition

크기 λ³€ν™” μ „ν™˜ 효과 πŸ“

.box {
    width: 100px;
    height: 100px;
    background-color: blue;
    transition: width 0.5s ease-in-out;
}

.box:hover {
    width: 200px;
}

css transition

μœ„μΉ˜ 이동 μ „ν™˜ 효과 πŸš€

.movable {
    position: relative;
    left: 0;
    transition: left 0.5s ease;
    width: 100px;
    height: 100px;
    background-color: blue;
}

.movable:hover {
    left: 100px;
}

css transition

뢈투λͺ…도 μ „ν™˜ νš¨κ³ΌπŸŒ‘

.fade {
    opacity: 1;
    transition: opacity 0.5s ease;
    width: 100px;
    height: 100px;
    background-color: blue;
}

.fade:hover {
    opacity: 0.5;
}

css transition

κ³ κΈ‰ CSS μ „ν™˜νš¨κ³Ό πŸš€

닀쀑 μ „ν™˜ 효과 μ‚¬μš©ν•˜κΈ° 🎭

.multi {
    width: 100px;
    height: 100px;
    background-color: blue;
    transition: width 0.5s ease, background-color 1s ease-in;
}

.multi:hover {
    width: 200px;
    background-color: red;
}

css transition

CSS λ³€ν™˜(Transform)κ³Ό ν•¨κ»˜ μ‚¬μš©ν•˜λŠ” μ „ν™˜νš¨κ³Ό πŸ”„

.transform {
    width: 100px;
    height: 100px;
    background-color: blue;
    transform: scale(1);
    transition: transform 0.5s ease;
}

.transform:hover {
    transform: scale(1.5);
}

css transition

μ»€μŠ€ν…€ 타이밍 ν•¨μˆ˜ μ‚¬μš©ν•˜κΈ° πŸ•°οΈ

.custom-timing {
    width: 100px;
    height: 100px;
    background-color: green;
    transition: width 2s cubic-bezier(0.68, -0.55, 0.27, 1.55);
}

.custom-timing:hover {
    width: 200px;
}

css transition

μ‹€μ œ ν”„λ‘œμ νŠΈμ—μ„œμ˜ ν™œμš© 사둀 πŸ› οΈ

λ²„νŠΌ ν˜Έλ²„ 효과 πŸ–±οΈ

.button {
    background-color: #008CBA;
    color: white;
    transition: background-color 0.3s ease;
    padding: 10px 20px;
    border: none;
    border-radius: 5px;
    cursor: pointer;
    font-size: 16px;
}

.button:hover {
    background-color: #005f73;
}

css transition

이미지 가러리 μ „ν™˜ 효과 πŸ–ΌοΈ

.gallery img {
    width: 100px;
    transition: width 0.5s ease;
}

.gallery img:hover {
    width: 200px;
}

메뉴 및 λ‚΄λΉ„κ²Œμ΄μ…˜ μ „ν™˜ 효과 πŸ”

.menu-item {
    opacity: 0;
    transition: opacity 0.5s ease-in-out;
}

.menu-item.show {
    opacity: 1;
}

μœ„μ˜ μ½”λ“œλŠ” μ•„μ΄ν…œμ΄ μ΄ˆκΈ°μ— 화면에 보이지 μ•Šκ³ , νŠΉμ • ν΄λž˜μŠ€κ°€ 좔가될 λ•Œ λ‚˜νƒ€λ‚˜λŠ” 효과λ₯Ό κ΅¬ν˜„ν•˜λŠ” 데 μ‚¬μš©λ©λ‹ˆλ‹€.

λ‘œλ”© μ• λ‹ˆλ©”μ΄μ…˜ 효과 ⏳

.loader {
    width: 50px;
    height: 50px;
    background-color: #f3f3f3;
    border-radius: 50%;
    transition: transform 0.5s ease-in-out;
}

.loader.animate {
    transform: rotate(360deg);
}

이 μ½”λ“œλ₯Ό μ›Ή λΈŒλΌμš°μ €μ— λ³΅μ‚¬ν•˜μ—¬ λΆ™μ—¬ λ„£μœΌλ©΄ λ‘œλ”© 쀑인 μƒνƒœλ₯Ό λ‚˜νƒ€λ‚΄λŠ” λ‘œλ”λ₯Ό λ§Œλ“€ 수 μžˆμŠ΅λ‹ˆλ‹€. νŽ˜μ΄μ§€κ°€ λ‘œλ“œλ  λ•Œ μžλ°”μŠ€ν¬λ¦½νŠΈλ₯Ό μ‚¬μš©ν•˜μ—¬. animate ν΄λž˜μŠ€κ°€ μΆ”κ°€λ˜μ–΄ λ‘œλ”κ°€ νšŒμ „ν•˜κ²Œ λ©λ‹ˆλ‹€.

μ„±λŠ₯ μ΅œμ ν™” νŒπŸš€

  • GPU 가속 ν™œμš©: transformκ³Ό opacityλŠ” GPU 가속을 ν™œμš©ν•˜μ—¬ μ„±λŠ₯을 μ΅œμ ν™”ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
  • λ³΅μž‘ν•œ μ „ν™˜νš¨κ³Ό 주의: λ„ˆλ¬΄ λ§Žμ€ μš”μ†Œμ— μ „ν™˜νš¨κ³Όλ₯Ό μ μš©ν•˜λ©΄ μ„±λŠ₯이 μ €ν•˜λ  수 μžˆμœΌλ―€λ‘œ μ£Όμ˜ν•΄μ•Ό ν•©λ‹ˆλ‹€.
  • λΈŒλΌμš°μ € ν˜Έν™˜μ„± 체크: λͺ¨λ“  λΈŒλΌμš°μ €μ—μ„œ μΌκ΄€λœ κ²½ν—˜μ„ μ œκ³΅ν•˜κΈ° μœ„ν•΄ ν˜Έν™˜μ„±μ„ 체크해야 ν•©λ‹ˆλ‹€.

CSS μ „ν™˜νš¨κ³Ό λ””λ²„κΉ…πŸ”

  • λΈŒλΌμš°μ € 개발자 도ꡬ ν™œμš©: 개발자 도ꡬλ₯Ό μ‚¬μš©ν•˜μ—¬ μ „ν™˜νš¨κ³Όκ°€ 적용된 μš”μ†Œλ₯Ό κ²€μ‚¬ν•˜κ³ , 문제λ₯Ό 찾을 수 μžˆμŠ΅λ‹ˆλ‹€.
  • μ „ν™˜νš¨κ³Όκ°€ μž‘λ™ν•˜μ§€ μ•Šμ„ λ•Œ: μŠ€νƒ€μΌ μš°μ„ μˆœμœ„λ‚˜ 속성 κ°’μ˜ μ˜€νƒ€ 등을 ν™•μΈν•˜μ—¬ 문제λ₯Ό ν•΄κ²°ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

핡심 λ‚΄μš©πŸ‘€

css μ „ν™˜ 효과

728x90
λ°˜μ‘ν˜•