πŸ’» Programming/HTML, CSS

[CSS] λ³€ν™˜κ³Ό μ „ν™˜ (Transformations & Transitions)

Jiwon() 2024. 1. 10. 17:21

 

1. λ³€ν™˜ Transformations

μš”μ†Œμ˜ λͺ¨μ–‘을 μ΄λ™ν•˜κ±°λ‚˜ λ³€κ²½ν•˜λŠ” 것 (ex. hover)

 

λ³€ν™˜μ€ transform 속성을 μ‚¬μš©ν•˜λŠ”λ° 이 속성은 λ³€ν™˜ν•˜λ €λŠ” μš”μ†Œμ— μΆ”κ°€ν•˜λŠ” 것이 μ•„λ‹ˆλΌ, λ³€ν™˜μ„ λ°œμƒμ‹œν‚€λŠ” μš”μ†Œμ— μΆ”κ°€ν•œλ‹€. μ•„λž˜ μ˜ˆμ‹œλ₯Ό 톡해 λ‹€μ‹œ μ‚΄νŽ΄λ³΄μž.

 

.card-container {
  background-color: rgb(255, 255, 255);
  width: 350px;
  margin: 50px auto;
  box-shadow: 3px 3px 10px rgb(201, 200, 200);
}

.card-container:hover {
  transform: scale(1.05);
}

 

λ³€ν™˜ν•˜λ €λŠ” μš”μ†ŒλŠ” .card-containerμ΄μ§€λ§Œ 여기에 transform 속성을 μΆ”κ°€ν•˜λŠ” 것이 μ•„λ‹ˆκ³ , .card-container μš”μ†Œμ˜ λ³€ν™˜μ„ λ°œμƒμ‹œν‚€λŠ” μš”μ†ŒμΈ .card-container:hover에 μΆ”κ°€ν•˜λŠ” 것이닀.

 

 

 

 

2. μ „ν™˜ Transitions

transformation λ“±μ˜ μƒνƒœ 변화에 μ• λ‹ˆλ©”μ΄μ…˜μ„ λΆ€μ—¬ν•˜μ—¬ λΆ€λ“œλŸ½κ²Œ μ „ν™˜ν•˜λŠ” 것

 

μ „ν™˜μ€ css λ³€ν™˜ 방식을 μ§€μ •ν•΄μ£ΌλŠ” 것이닀. μœ„μ˜ λ³€ν™˜ μ˜ˆμ‹œμ—μ„œ .card-container:hover에 transform: scale(1.05)λ₯Ό 지정해주면 .card-container에 마우슀λ₯Ό 올리자마자 ν•΄λ‹Ή μš”μ†Œμ˜ 크기가 1.05λ°° μ»€μ§€λŠ”λ°, 이 λ³€ν™”λ₯Ό νŠΈλžœμ§€μ…˜μ„ 톡해 μ’€ 더 λΆ€λ“œλŸ½κ²Œ 보이도둝 섀정해쀄 수 μžˆλ‹€.

μ „ν™˜μ€ transition 속성을 μ‚¬μš©ν•œλ‹€. μ „ν™˜μ€ λ³€ν™˜κ³Ό λ‹€λ₯΄κ²Œ λ³€ν™˜μ„ λ°œμƒμ‹œν‚€λŠ” μš”μ†Œκ°€ μ•„λ‹Œ λ³€ν™˜ν•˜λ €λŠ” μ›λž˜μ˜ μš”μ†Œμ— μ μš©ν•œλ‹€. μ „ν™˜μ΄ μ •μ˜λœ μš”μ†Œμ— μ€‘μ²©λ˜μ–΄ μžˆλŠ” μš”μ†Œμ—λ„ μ μš©ν•  수 μžˆλ‹€.

 

.card-container {
  background-color: var(--sample-variable);
  width: 350px;
  margin: 50px auto;
  box-shadow: 3px 3px 10px rgb(201, 200, 200);
  transition: transform 0.2s ease 0.1s;
}

.card-container:hover{
    transform: scale(1.05);
}

 

transition 속성은 .card-container:hoverκ°€ μ•„λ‹Œ .card-container , κ·ΈλŸ¬λ‹ˆκΉŒ λ³€ν™˜ν•˜κ³ μž ν•˜λŠ” μ›λž˜ μš”μ†Œμ— μΆ”κ°€ν•œλ‹€.

 

 

(1) property

μ „ν™˜μ„ μ μš©ν•˜λ €λŠ” 속성. transform 외에도 background-color λ“± λ‹€μ–‘ν•œ 속성을 μ μš©ν•  수 μžˆλ‹€.

 

(2) duration

property μ†μ„±μ˜ λ³€ν™”κ°€ μ–Όλ§ˆλ‚˜ 지속될 지 μ§€μ†μ‹œκ°„μ„ μ§€μ •ν•œλ‹€.

 

(3) timing function

μ „ν™˜ 효과의 영ν–₯을 λ°›λŠ” css 속성에 λŒ€ν•œ 쀑간값 계산 방법을 μ„€μ •ν•œλ‹€.

타이밍 κΈ°λŠ₯은 μ—¬λŸ¬κ°€μ§€κ°€ μ‘΄μž¬ν•˜λŠ”λ°, κ·Έ μ€‘μ—μ„œ ease-out은 μ „ν™˜μ΄ λΉ λ₯΄κ²Œ μ‹œμž‘ν•˜κ³  늦게 λλ‚˜λŠ” 것을 μ˜λ―Έν•˜κ³  ease-in은 μ „ν™˜μ΄ 느리게 μ‹œμž‘ν•˜κ³  속도가 ν–₯μƒλ˜λŠ” 것을 μ˜λ―Έν•œλ‹€. 기본값은 ease이며, μ΄λŠ” μ „ν™˜ κΈ°κ°„λ™μ•ˆ μΌμ •ν•˜κ²Œ λ°°λΆ„λœλ‹€λŠ” 것을 μ˜λ―Έν•œλ‹€.

MDN transition-timing-function

 

(4) delay

지연은 μ „ν™˜μ΄ μ‹œμž‘λ˜κΈ° μ „κΉŒμ§€μ˜ μ‹œκ°„μ„ μ„€μ •ν•œλ‹€. delayλ₯Ό 1s둜 μ„€μ •ν•΄μ£ΌλŠ” 경우, νŠΉμ • λ³€ν™˜ μ΄λ²€νŠΈκ°€ 트리거되면 1초 뒀에 μ „ν™˜μ΄ λ°œμƒν•œλ‹€λŠ” λœ»μ΄λ‹€.