![article thumbnail image](https://blog.kakaocdn.net/dn/blmMfx/btrX8hCNKVZ/kftR1ft3blkoprTGgppD41/img.png)
transform
속성명 | 속성값 | 설명 |
transform(2D) | scale | 선택한 요소의 크기를 확대 또는 축소한다. 현재 크기의 비율을 기준으로 1보다 크면 확대, 1보다 작으면 축소한다. |
skew | 선택한 요소를 x축 또는 y축으로 비틀어서 변형한다. 원하는 각도를 지정하여 기울기를 조절할 수 있다. |
|
translate | 선택한 요소를 현재 위치 기준에서 x축 또는 y축으로 이동할 수 있다. | |
rotate | 선택한 요소를 회전시킨다. | |
transform(3D) | rotateX, rotateY | 선택한 요소를 x축 또는 y축으로 입체감 있게 회전한다. |
translateZ | 선택한 요소를 z축으로 입체감 있게 보이면서 이동시킨다. | |
perspective | px | 3D효과가 적용된 요소가 입체감 있게 보이도록 부모요소에 perspective 속성을 적용하여 원근감을 부여한다. |
transform-style | preserve-3d | 3D효과가 적용된 요소에 모션처리를 하면 해당 3D효과가 풀린다. 이 때 부모 요소에 preserve-3d 속성을 적용하여 3D효과를 유지시킨다. |
transform-origin | 가로축, 세로축 | 요소의 변형이 일어나는 중심축을 가로축, 세로축 기준으로 변경할 수 있다. |
예시
![](https://blog.kakaocdn.net/dn/qujD8/btrX4mkDF3E/vgnOITMIYu0UTpJHxoaaOK/img.png)
transform 속성 적용전 모습
![](https://blog.kakaocdn.net/dn/blmMfx/btrX8hCNKVZ/kftR1ft3blkoprTGgppD41/img.png)
왼쪽부터 scale, skew, translate 속성을 적용한 모습
![](https://blog.kakaocdn.net/dn/bApyLB/btrX3ZXpuF3/tpX73kekHDF1KoXklEMQjk/img.png)
왼쪽은 2D rotate를 사용한모습.
가운데와 오른쪽은 rotateY에 각도를 지정하고 transform-origin으로 입체감있게 회전되었다.
![](https://blog.kakaocdn.net/dn/b7RlgU/btrYchPTmR8/TChqddBRFWYEgmJ2gXUI70/img.png)
rotateX,Y와 perspective를 사용해 입체감있게 변형했다.
![](https://blog.kakaocdn.net/dn/cg1GTL/btrX3ucrop3/MvtPqncapePxrP7ccpwuck/img.png)
translateZ를 사용해 z축으로 하나는 100px만큼 하나는 -100px만큼 이동했다.
transition
속성명 | 속성값 | 설명 |
transition-property | 속성명 | 전환 효과를 줄 CSS속성명을 지정한다. 속성명은 여러개 지정할 수 있고, all을 입력하면 모든 속성을 사용할 수 있다. |
transition-duration | 지속 시간(초 단위) | 전환 효과 발생시 지속할 시간을 초(s)단위로 나타낸다. |
transition-delay | 지연 시간(초 단위) | 전환 효과 발생시 지연할 시간을 초(s)단위로 나타낸다. 지연 시간 이후에 전환 효과가 발생한다. |
transition-timing-function | 가속도 | 전환 효과의 가속도를 나타낸다. 가속도 효과는 다음의 키워드를 입력하여 적용한다. - linear: 등속효과 - ease: 가속효과 - ease-in: 모션 시작 시 가속 - ease-out: 모션 종료 시 가속 - ease-in-out: 모션 시작 및 종료 시 모두 가속 - cubiz-bezier: 사용자가 지정한 가속 효과 적용 |
transition | 속성명 / 전환 시간 / 가속도 / 지연시간 | 모든 전환 효과 속성값을 한번에 축약해서 사용할 수 있다 |
![](https://blog.kakaocdn.net/dn/eSSTwv/btrX2ZcGRt4/LJGlfHL8v5cVCGNc6A9jw0/img.png)
cubic-bezier.com
cubic-bezier.com
가속도 함수를 지정하려면 복잡한 수학 연산을 해야하지만, 위 사이트에서 cubic-bezier구문을 직접 조절하면 간편하게 사용할 수 있다.
![](https://blog.kakaocdn.net/dn/PFHRC/btrX6nQLS6U/KyRdCC46uYQbVxQIEPtOIk/img.gif)
section {
width: 200px;
height: 200px;
border: 1px solid #000;
float: left;
margin: 50px;
perspective: 400px;
}
section article {
width: 100%;
height: 100%;
background: blue;
opacity: 0.3;
transform: rotateY(0deg);
transition-property: transform opacity;
transition-duration: 1s;
transition-delay: 0s;
transition-timing-function: cubic-bezier(0.46, -0.64, 0.58, 1.39);
}
section:hover article {
transform: rotateY(720deg);
background: yellow;
}
hover효과를 사용해 마우스를 박스 안에 올리면 회전문 효과를 낼 수 있도록 해봤다.
위는 trasition 효과를 각 각 주었지만
section article {
width: 100%;
height: 100%;
background: blue;
opacity: 0.3;
transform: rotateY(0deg);
transition: all 1s cubic-bezier(0.46, -0.64, 0.58, 1.39) 0s;
}
이런식으로 transition 하나로 축약해서 사용할 수도 있다.
반응형
'개발 > HTML, CSS' 카테고리의 다른 글
[CSS + Javascript] 로딩 화면 이미지 360 회전 하고 로딩중에 문구도 바뀌도록 만들기 (2) | 2024.04.06 |
---|---|
[Mobile] 아이폰에서 input 입력이 안될 때 (0) | 2023.04.06 |
[HTML] 시맨틱 태그 - 웹 페이지 구조 분리 (0) | 2023.02.15 |
[UI/UX] 인터랙티브?UI/UX? (1) | 2023.02.11 |
[CSS] 글씨 크기 지정하기 (0) | 2023.02.05 |