일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 익스프레스
- 프로그래머스코테
- 다이나믹프로그래밍
- 자바스크립트
- 리액트댓글기능
- HTML
- JS프로그래머스
- 백준골드
- 리액트커뮤니티
- 백준구현
- 포이마웹
- 백준js
- 프로그래머스JS
- HTML5
- CSS
- 백준nodejs
- 코테
- 코딩테스트
- 프로그래머스
- dp알고리즘
- js코테
- css기초
- 백준
- 백준알고리즘
- 알고리즘
- 안드로이드 스튜디오
- 몽고DB
- 백준구현문제
- JS
- 리액트
- Today
- Total
개발새발 로그
CSS Transform(트랜스폼) 본문
트랜지션은 CSS 스타일 변경을 부드럽게 표현하기 위해 duration(지속시간)을 부여하여 속도를 조절한다.
애니메이션은 하나의 줄거리(@keyframes)를 구성하여 줄거리 내에서 세부 움직임을 시간 흐름 단위로 제어하여 요소의 움직임을 표현한다.
트랜스폼(Transform)은 요소에 이동(translate), 회전(rotate), 확대축소(scale), 비틀기(skew) 효과를 부여하기 위한 함수를 제공한다.
단 애니메이션 효과를 제공하지는 않기 때문에 정의된 프로퍼티가 바로 적용되어 화면에 표시된다. 트랜스폼은 애니메이션 효과를 위해 사용하여야 하는 것은 아니지만 애니메이션 효과를 부여할 필요가 있다면 트랜지션이나 애니메이션과 함께 사용한다.
1. 2D 트랜스폼 (2D Transform)
2D 트랜스폼은 프로퍼티값으로 변환함수(transform function)를 사용한다. 변환함수는 다음과 같다.
transform function설명단위
translate(x,y) | 요소의 위치를 X축으로 x만큼, Y축으로 y만큼 이동시킨다. | px, %, em 등 |
translateX(n) | 요소의 위치를 X축으로 x만큼 이동시킨다. | px, %, em 등 |
translateY(n) | 요소의 위치를 Y축으로 y만큼 이동시킨다. | px, %, em 등 |
scale(x,y) | 요소의 크기를 X축으로 x배, Y축으로 y배 확대 또는 축소 시킨다. | 0과 양수 |
scaleX(n) | 요소의 크기를 X축으로 x배 확대 또는 축소 시킨다. | 0과 양수 |
scaleY(n) | 요소의 크기를 Y축으로 y배 확대 또는 축소 시킨다. | 0과 양수 |
skew(x-angle,y-angle) | 요소를 X축으로 x 각도만큼, Y축으로 y 각도만큼 기울인다. | +/- 각도(deg) |
skewX(x-angle) | 요소를 X축으로 x 각도만큼 기울인다. | +/- 각도(deg) |
skewY(y-angle) | 요소를 Y축으로 y 각도만큼 기울인다. | +/- 각도(deg) |
rotate(angle) | 요소를 angle만큼 회전시킨다. | +/- 각도(deg) |
1.1 transform
변환함수를 프로퍼티값으로 쉼표없이 나열한다. 나열순서에 따라 차례대로 효과가 적용된다.
.translate {
transform: translate(10px, 50px);
}
.scale {
transform: scale(.75);
}
.skew {
transform: skew(5deg, -20deg);
}
.rotate {
transform: rotate(70deg);
}
.complex {
transform: scale(.5) rotate(20deg);
}
1.2 transform-origin
요소의 기본기준점을 설정할 때 사용된다. 기본기준점은 요소의 정중앙이다(50%,50%). 이동은 기준점을 변경하여도 일정 거리만큼 이동하므로 의미가 없다. 설정값으로 %, px, top left, bottom right을 사용할 수 있다. 0, 0은 top left, 100% 100%는 bottom right과 같은 값이다.
transform-origin: 50% 50%;
transform-origin: 0 0;
2. 3D 트랜스폼 (3D Transform)
3D 트랜스폼은 프로퍼티값으로 변환함수(transform function)를 사용한다. 사용할 수 있는 변환함수는 다음과 같다.
translate3d(x,y,z) | 요소의 위치를 X축으로 x만큼, Y축으로 y만큼 Z축으로 z만큼 이동시킨다. | px, %, em 등 |
translateX(n) | 요소의 위치를 X축으로 x만큼 이동시킨다. | px, %, em 등 |
translateY(n) | 요소의 위치를 Y축으로 y만큼 이동시킨다. | px, %, em 등 |
translateZ(n) | 요소의 위치를 Z축으로 z만큼 이동시킨다. | px, %, em 등 |
scale3d(x,y) | 요소의 크기를 X축으로 x배, Y축으로 y배, Z축으로 z배 확대 또는 축소 시킨다. | 0과 양수 |
scaleX(n) | 요소의 크기를 X축으로 x배 확대 또는 축소 시킨다. | 0과 양수 |
scaleY(n) | 요소의 크기를 Y축으로 y배 확대 또는 축소 시킨다. | 0과 양수 |
scaleZ(n) | 요소의 크기를 Z축으로 z배 확대 또는 축소 시킨다. | 0과 양수 |
rotate3d(x,y,z) | 요소를 X축으로 x각도, Y축으로 y각도, Z축으로 z각도 회전시킨다. | +/- 각도(deg) |
rotateX(x) | 요소를 X축으로 x각도 회전시킨다. | +/- 각도(deg) |
rotateY(y) | 요소를 Y축으로 y각도 회전시킨다. | +/- 각도(deg) |
rotateZ(z) | 요소를 Z축으로 z각도 회전시킨다. | +/- 각도(deg) |
'CSS' 카테고리의 다른 글
CSS Layout(레이아웃) (0) | 2023.06.13 |
---|---|
CSS Web Font(웹디자인 타이포그래피(Typography)) (0) | 2023.06.13 |
CSS Animation 애니메이션 (0) | 2023.06.13 |
CSS Transition(트랜지션) (0) | 2023.06.13 |
CSS Gradient(그레이디언트) (0) | 2023.06.13 |