CSS 2D 변환

CSS 2D 변환

CSS 변환(transforms)은 요소를 이동, 회전, 확대, 축소 및 기울이는 데 사용할 수 있습니다。

아래 요소에 마우스를 올려 놓으면 2D 변환을 확인할 수 있습니다:

2D rotate

이 장에서는 다음과 같은 CSS 속성을 배웁니다:

  • transform

브라우저 지원

표에서의 숫자는 이 속성을 완전히 지원하는 첫 번째 브라우저 버전을 나타냅니다。

속성 크롬 IE 파이어폭스 사파리 오페라
transform 36.0 10.0 16.0 9.0 23.0

CSS 2D 변환 메서드

CSS를 사용하여 transform 속성을 사용하여 다음과 같은 2D 변환 메서드를 활용할 수 있습니다:

  • translate()
  • rotate()
  • scaleX()
  • scaleY()
  • scale()
  • skewX()
  • skewY()
  • skew()
  • matrix()

푸트리플랫다음 장에서는 3D 변환을 배웁니다。

translate() 메서드

Translate

translate() X축과 Y축에 지정된 파라미터에 따라 요소를 현재 위치에서 이동하는 방법입니다。

아래 예제에서는 <div> 요소를 현재 위치에서 50픽셀 오른쪽으로 이동하고 100픽셀 아래로 이동합니다:

예제

div {
  transform: translate(50px, 100px);
}

자신의 손으로 해보세요

rotate() 메서드

Rotate

rotate() 지정된 각도에 따라 요소를 시계 방향이나 반시계 방향으로 회전하는 방법입니다。

아래 예제에서는 <div> 요소를 시계 방향으로 20도 회전합니다:

예제

div {
  transform: rotate(20deg);
}

자신의 손으로 해보세요

부정적인 값을 사용하여 요소를 반시계 방향으로 회전합니다。

아래 예제에서는 <div> 요소를 반시계 방향으로 20도 회전합니다:

예제

div {
  transform: rotate(-20deg);
}

자신의 손으로 해보세요

scale() 메서드

Scale

scale() 요소의 크기를 늘리거나 줄이는 방법입니다. (지정된 너비와 높이 파라미터에 따라).

아래 예제에서는 <div> 요소를 원래 너비의 두 배와 높이의 세 배로 확장합니다:

예제

div {
  transform: scale(2, 3);
}

자신의 손으로 해보세요

아래 예제에서는 <div> 요소를 원래 너비와 높이의 반으로 줄입니다:

예제

div {
  transform: scale(0.5, 0.5);
}

자신의 손으로 해보세요

scaleX() 메서드

scaleX() 요소의 너비를 늘리거나 줄이는 방법입니다。

아래 예제에서는 <div> 요소를 원래 너비의 두 배로 확장합니다:

예제

div {
  transform: scaleX(2);
}

자신의 손으로 해보세요

이 예제에서는 <div> 요소를 원래 너비의 반으로 축소합니다:

예제

div {
  transform: scaleX(0.5);
}

자신의 손으로 해보세요

scaleY() 메서드

scaleY() 메서드는 요소의 높이를 증가하거나 감소시킵니다.

다음 예제는 <div> 요소의 원래 높이를 세 배로 확대합니다:

예제

div {
  transform: scaleY(3);
}

자신의 손으로 해보세요

다음 예제는 <div> 요소의 원래 높이를 반으로 줄입니다:

예제

div {
  transform: scaleY(0.5);
}

자신의 손으로 해보세요

skewX() 메서드

skewX() 메서드는 요소가 X축으로 기울어지는 각도를 설정합니다.

다음 예제는 <div> 요소를 X축으로 20도 기울입니다:

예제

div {
  transform: skewX(20deg);
}

자신의 손으로 해보세요

skewY() 메서드

skewY() 메서드는 요소가 Y축으로 기울어지는 각도를 설정합니다.

다음 예제는 <div> 요소를 Y축으로 20도 기울입니다:

예제

div {
  transform: skewY(20deg);
}

자신의 손으로 해보세요

skew() 메서드

skew() 메서드는 요소가 X축과 Y축으로 기울어지는 각도를 설정합니다.

다음 예제는 <div> 요소를 X축으로 20도, Y축으로 10도 기울입니다:

예제

div {
  transform: skew(20deg, 10deg);
}

자신의 손으로 해보세요

두 번째 파라미터가 지정되지 않으면 값은 0입니다. 따라서 다음 예제는 <div> 요소를 X축으로 20도 기울입니다:

예제

div {
  transform: skew(20deg);
}

자신의 손으로 해보세요

matrix() 메서드

Rotate

matrix() 메서드는 모든 2D 변환 메서드를 하나로组合합니다.

matrix() 메서드는 수학 함수를 포함한 6개의 파라미터를 받아들이며, 이 파라미터들은 요소를 회전, 확대, 이동(이동) 및 기울이기 할 수 있습니다.

파라미터는 다음과 같습니다: matrix(scaleX(), skewY(), skewX(), scaleY(), translateX(), translateY())

예제

div {
  transform: matrix(1, -0.3, 0, 1, 0, 0);
}

자신의 손으로 해보세요

CSS 변환 속성

아래 표는 모든 2D 변환 속성을 나열합니다:

속성 설명
transform 요소에 2D 또는 3D 변환을 적용합니다.
transform-origin 변환된 요소의 위치를 변경할 수 있습니다.

CSS 2D 변환 메서드

함수 설명
matrix(n,n,n,n,n,n) 6개의 값을 가진 행렬을 사용하여 2D 변환 정의합니다.
translate(x,y) 2D 변환 정의, X축과 Y축으로 요소를 이동합니다.
translateX(n) 2D 변환 정의, X축으로 요소를 이동합니다.
translateY(n) 2D 변환 정의, Y축으로 요소를 이동합니다.
scale(x,y) 2D 확대 변환 정의, 요소의 너비와 높이를 변경
scaleX(n) 2D 확대 변환 정의, 요소의 너비를 변경
scaleY(n) 2D 확대 변환 정의, 요소의 높이를 변경
rotate(angle) 2D 회전 변환 정의, 각도를 매개변수로 지정
skew(x-angle,y-angle) X와 Y 축을 따라 2D 기울기 변환 정의
skewX(angle) X 축을 따라 2D 기울기 변환 정의
skewY(angle) Y 축을 따라 2D 기울기 변환 정의