CSS 2D 변환
2D 변환
CSS 변환을 사용하면 요소를 이동, 회전, 축척 및 왜곡할 수 있습니다.
이 장에서는 다음 CSS 속성에 대해 학습합니다.
transform
지원 브라우저
표의 숫자는 속성을 완전히 지원하는 최소 브라우저 버전을 지정합니다.
브라우저 | 구글 Chrome | 마이크로소프트 Edge | Firefox | Safari | Opera |
버전 | 36.0 | 10.0 | 16.0 | 9.0 | 23.0 |
2D 변환 메서드
transform
속성을 사용하여 다음과 같은 2D 변환 방법을 사용할 수 있습니다.
translate()
rotate()
scaleX()
scaleY()
scale()
skewX()
skewY()
skew()
matrix()
translate()
translate()
메서드는 X축과 Y축에 대해 주어진 매개변수에 따라 요소를 현재 위치에서 이동합니다.
다음 예제에서는 <div>
요소를 50픽셀 오른쪽으로 이동하고 현재 위치에서 100픽셀 아래로 이동합니다.
예제 1
div {
transform: translate(50px, 100px);
}
rotate()
rotate()
메서드는 주어진 정도에 따라 요소를 시계 방향 또는 반시계 방향으로 회전시킵니다.
다음 예제에서는 <div>
요소를 시계 방향으로 20도 회전합니다.
예제 2
div {
transform: rotate(20deg);
}
음수 값을 사용하면 요소가 시계 반대 방향으로 회전합니다.
다음 예제에서는 <div>
요소를 시계 반대 방향으로 20도 회전합니다.
예제 3
div {
transform: rotate(-20deg);
}
scale()
scale()
메서드는 폭과 높이에 대해 주어진 모수에 따라 요소의 크기를 늘리거나 줄입니다.
다음 예제에서는 <div>
요소를 원래 너비의 두 배와 원래 높이의 세 배로 늘립니다.
예제 4
div {
transform: scale(2, 3);
}
다음 예제에서는 <div>
요소를 원래 너비와 높이의 절반으로 줄입니다.
예제 5
div {
transform: scale(0.5, 0.5);
}
scaleX()
scaleX()
메서드는 요소의 너비를 늘리거나 줄입니다.
다음 예제에서는 <div>
요소를 원래 너비의 두 배로 늘립니다.
예제 6
div {
transform: scaleX(2);
}
다음 예제에서는 <div>
요소를 원래 너비의 절반으로 줄입니다.
예제 7
div {
transform: scaleX(0.5);
}
scaleY()
scaleY()
메서드는 요소의 높이를 증가시키거나 감소시킵니다.
다음 예제에서는 <div>
요소를 원래 높이의 세 배로 늘립니다.
예제 8
div {
transform: scaleY(3);
}
다음 예제에서는 <div>
요소를 원래 높이의 절반으로 줄입니다.
예제 9
div {
transform: scaleY(0.5);
}
skewX()
skewX()
메서드는 X 축을 따라 지정된 각도만큼 요소를 왜곡시킵니다.
다음 예제에서는 <div>
요소를 X축을 따라 20도 기울입니다.
예제 10
div {
transform: skewX(20deg);
}
skewY()
skewY()
메서드는 Y 축을 따라 지정된 각도만큼 요소를 스큐합니다.
다음 예제에서는 Y축을 따라 <div>
요소를 20도 기울입니다.
예제 11
div {
transform: skewY(20deg);
}
skew()
skew()
메서드는 X 축과 Y 축을 따라 지정된 각도만큼 요소를 스큐합니다.
다음 예제에서는 <div>
요소를 X축을 따라 20도, Y축을 따라 10도 기울입니다.
예제 12
div {
transform: skew(20deg, 10deg);
}
두 번째 매개 변수가 지정되지 않은 경우 값이 0입니다. 다음 예제에서는 <div>
요소를 X축을 따라 20도 기울입니다.
예제 13
div {
transform: skew(20deg);
}
matrix()
matrix()
메서드는 모든 2D 변환 방법을 하나로 결합합니다.
matrix()
메서드는는 회전, 스케일링, 이동(변환) 및 스큐 요소를 사용할 수 있는 수학적 함수가 포함된 6개의 모수가 사용됩니다.
매개변수는 matrix(scaleX(), skewY(), skewX(), scaleY(), translateX(), translateY())
입니다.
예제 14
div {
transform: matrix(1, -0.3, 0, 1, 0, 0);
}