webStyling/design

CSS // transform, transition

부엉이사장 2023. 4. 4. 08:21

 

 

  <div class="anime_boxes">
    <div class="box1 box"></div>
  </div>

먼저 html

 

 

## transform 사용하기

 

# 이동을 해보자

.box {
  width: 100px;
  height: 100px;
  background-color: red;
  margin: 10px;
  transform: translateX(50px);
}

- translateX(값)

이건 x축으로 얼만큼 이동하겠는가

- translateY(값)

이건 y축으로 얼만큼 이동하겠는가

-translate(값1,값2)

이건 xy각각 얼만큼 이동하겠는가

 

 

# 크기를 조절해보자

.box {
  width: 100px;
  height: 100px;
  background-color: red;
  margin: 10px;
  transform: scaleX(2);
}

- scaleX(값)

값배만큼 X축으로 늘리자~

- scaleY(값)

값배만큼 Y축으로 늘리자~

- scale(값)

xy축으로 값배만큼 늘리자~

 

 

# 회전을 시키자

.box {
  width: 100px;
  height: 100px;
  background-color: red;
  margin: 10px;
  transform: rotate(50deg);
}

rotateX : x축으로 얼만큼 회전시킬래?

rotateY : Y축으로 얼만큼 회전시킬래?

rotateZ : Z축으로 얼만큼 회전시킬래?

뭐 이런식으로 각각 축으로 회전하는거다.

그냥 rotate만 쓰면 z축 회전이 기본값이 된다.

 

 

 

# 입체적으로 rotate쓰기

부모요소에 perspective요소를 주면 된다.

.anime_boxes {
  perspective: 100px;
}

저 값이 클때마다 멀리있는 느낌

작을때마다 가까운 느낌임.

 

- perspective가 500px일때

- perspective가 100px일때

응 짤림 ㅡㅡ

 

 

#왜곡을 시켜보자

skewX

skewY

skewZ

 

 

 

 

## Transition

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

마우스를 박스1에 올렸을때 width height가 200px이 되게 한다.

 

.box1 {
  transition-property: width, height;
  transition-duration: 2s;
}

이렇게 트랜지션을 추가하면 2초동안 width height가 증가감소한다.

 

.box1 {
  transition-property: width, height;
  transition-duration: 2s;
  transition-timing-function: linear;
}

- transition-timing-function : linear 

일정한 속도로 변화,

- transition-timing-function : ease-in

천천히->빠르게 변화

- transition-timing-function : linear 

빠르게->천천히 변화

 

# 단축표현 

.box1 {
  transition: all 2s ease-out;
}

all안적으면 디폴트로 all지정됨.