본문 바로가기
CSS

10. Transform, Transition

by 몽이코딩 2024. 4. 25.
반응형

transform

transform 속성은 HTML 요소를 이동 효과, 크기 조절, 회전, 기울이기를 나타낼 때 사용합니다.

사용은 속성 값으로 특수한 함수를 넣어주면 됩니다.

 

 

transform 속성 값

  • translate(x, y) - 지정한 크기만큼 x축, y축으로 이동합니다.
  • translateX(x) - 지정한 크기만큼 x축으로 이동합니다.
  • translateY(y) - 지정한 크기만큼 y축으로 이동합니다.
  • scale(x, y) - 지정한 크기만큼 x축과 y축으로 확대·축소합니다.
  • scaleX(x) - 지정한 크기만큼 x축으로 확대·축소합니다.
  • scaleY(x) - 지정한 크기만큼 y축으로 확대·축소합니다.
  • rotate(각도) - 지정한 각도만큼 회전합니다. (+시계방향, -시계반대방향)
  • rotateX(각도) - x축을 기준으로 회전합니다. perspective 속성을 부모 요소에 적용하면 입체감 있게 표현됩니다.
  • rotateY(각도) - y축을 기준으로 회전합니다. perspective 속성을 부모 요소에 적용하면 입체감 있게 표현됩니다.
  • rotateZ(각도) - z축을 기준으로 회전합니다. perspective 속성을 부모 요소에 적용하면 입체감 있게 표현됩니다.
  • skew(x, y) - 지정한 각도만큼 x축과 y축으로 왜곡합니다.
  • skewX(x) - 지정한 각도만큼 x축으로 왜곡합니다.
  • skewY(x) - 지정한 크기만큼 y축으로 왜곡합니다.

 

 

transition

transition은 요소가 스타일 적용으로 인해 변환할 때 더욱 부드럽게 전환할 수 있도록 도와주는 속성입니다.

 

 

 

Transition 속성

 

transition-property

  • 어떤 속성에 트랜지션 효과를 줄 것인지 지정합니다.
  • transitino-property: <속성1>, <속성2>; 와 같이 지정할 수 있습니다.
  • all - 모든 속성을 지정합니다. (all은 생략 가능합니다.)
  • none - 아무것도 지정하지 않습니다.

transition-duration

  • 트랜지션 효과를 몇 초 동안 실행할 것이지 지정합니다.

transition-delay

  • 지정한 초 만큼 기다렸다가 실행할 때 사용합니다.

transition-timing-function

  • 트랜지션이 시작하면서 끝날때의 속도를 지정합니다.
  • linear - 트랜지션의 시작과 끝의 속도가 일정합니다.
  • ease-in - 천천히 시작했다가 완료될 때 속도가 증가합니다.
  • ease-out - 빨리 시작했다가 완료될 때 속도가 낮아집니다.

transition

  • 단축속성으로 위 속성을 한꺼번에 표기할 수 있습니다.
  • 예) transition: all 2s 1s ease-in; (all 생략가능)

 

 


실습

<!-- HTML -->
<div class="line">
  <div class="box1"></div>
</div>
<div class="line">
  <div class="box2"></div>
</div>
<div class="line rotate">
  <div class="box3"></div>
</div>
<div class="line">
  <div class="box4"></div>
</div>
/* CSS */
.line {
  border: 3px solid black;
  width: 100px;
  height: 100px;
  margin: 20px auto;
}

div[class*="box"] {
  background-color: orange;
  width: 100px;
  height: 100px;
}

.box1 {
  transform: translate(20px, 10px);
}

.box2 {
  transform: scale(2, 0.5);
}

.box3 {
  transform: rotate(45deg);
}
.rotate {
  perspective: 50px;
}

.box4 {
  transform: skew(30deg);
}

.box1:hover {
  width: 200px;
  height: 200px;
  background-color: red;
  transition: all 2s 1s ease-in;
  transform: rotate(160deg);
}
반응형

'CSS' 카테고리의 다른 글

12. 반응형 웹  (0) 2024.04.29
11. Flexbox  (0) 2024.04.29
9. 표(table)  (0) 2024.04.24
8. Position  (0) 2024.04.23
7. Float  (0) 2024.04.19