티스토리 뷰

CSS

[CSS] transform

transform

transform 속성은 컨텐츠 요소를 이동(translate), 회전(rotate), 확대(scale), 기울기(skew) 등의 효과를 줄 수 있습니다. 애니메이션 작업시 가장 많이 쓰는 요소입니다. 요소를 이동시키거나 회전 시킬 수 있으며, 원근점(perspective)를 사용하여 3D까지 구현 할 수 있습니다.


transform

transform 속성은 요소의 움직임을 표현합니다.

정의(Definition)

  • transform 속성은 요소의 움직임을 표현합니다.

문법(Syntax)

transform : none | matrix() | translate() | translateX() | translateY() | scale() | scaleX() | scaleY() | rotate() | skew() | skewX() | skewY() | matrix3d() | translate3d() | translateZ() | scale3d() | scaleZ() | rotate3d() | rotateX() | rotateY() | rotateZ() | perspective()

이동(translate)

속성값 예시 설명
translate(x,y) transform: translate(10px, 20px); X좌표, Y좌표 이동을 나태냅니다.
translate3d(x,y,z) transform: translate3d(10px, 20px, 30px); X좌표, Y좌표, Z좌표 이동을 나태냅니다.
translateX(x) transform: translateX(10px); X좌표 이동을 나태냅니다.
translateY(y) transform: translateY(10px); Y좌표 이동을 나태냅니다.
translateZ(z) transform: translateZ(10px); Z좌표 이동을 나태냅니다.

Sample1

translate의 값을 표현한 예제입니다.

결과
translate01
translate02
translate03
translate04
translate05
CSS
.translate01 {transform: translate(10px, 10px);}
.translate02 {transform: translate(20px, 20px);}
.translate03 {transform: translate(30px, 30px);}
.translate04 {transform: translate(40px, 40px);}
.translate05 {transform: translate(50px, 50px);}

Sample2

translateX의 값을 표현한 예제입니다.

결과
translate06
translate07
translate08
translate09
translate10
CSS
.translate06 {transform: translateX(10px);}
.translate07 {transform: translateX(20px);}
.translate08 {transform: translateX(30px);}
.translate09 {transform: translateX(40px);}
.translate10 {transform: translateX(50px);}

Sample3

translateY의 값을 표현한 예제입니다.

결과
translate11
translate12
translate13
translate14
translate15
CSS
.translate11 {transform: translateY(10px);}
.translate12 {transform: translateY(20px);}
.translate13 {transform: translateY(30px);}
.translate14 {transform: translateY(40px);}
.translate15 {transform: translateY(50px);}

Sample4

translateZ의 값을 표현한 예제입니다.

결과
translate16
translate17
translate18
translate19
translate20
CSS
.translate16 {transform: translateZ(10px); opacity: .6;}
.translate17 {transform: translateZ(20px); opacity: .6;}
.translate18 {transform: translateZ(30px); opacity: .6;}
.translate19 {transform: translateZ(40px); opacity: .6;}
.translate20 {transform: translateZ(50px); opacity: .6;}

Sample5

translateZ의 -값을 표현한 예제입니다.

결과
translate21
translate22
translate23
translate24
translate25
CSS
.translate21 {transform: translateZ(-10px); opacity: .6;}
.translate22 {transform: translateZ(-30px); opacity: .6;}
.translate23 {transform: translateZ(-50px); opacity: .6;}
.translate24 {transform: translateZ(-70px); opacity: .6;}
.translate25 {transform: translateZ(-90px); opacity: .6;}

확대(scale)

속성값 예시 설명
scale(x,y) transform: scale(2, 2); X좌표, Y좌표 확대를 나태냅니다.
scale3d(x,y,z) transform: scale3d(2, 2, 2); X좌표, Y좌표, Z좌표 확대를 나태냅니다.
scaleX(x) transform: scaleX(2); X좌표 확대를 나태냅니다.
scaleY(y) transform: scaleY(2); Y좌표 확대를 나태냅니다.
scaleZ(z) transform: scaleZ(2); Z좌표 확대를 나태냅니다.

Sample1

scale의 값을 크게 표현한 예제입니다.

결과
scale01
scale02
scale03
scale04
scale05
CSS
.scale01 {transform: scale(1.1, 1.1);}
.scale02 {transform: scale(1.2, 1.2);}
.scale03 {transform: scale(1.3, 1.3);}
.scale04 {transform: scale(1.4, 1.4);}
.scale05 {transform: scale(1.5, 1.5);}

Sample2

scale의 값을 작게 표현한 예제입니다.

결과
scale06
scale07
scale08
scale09
scale10
CSS
.scale06 {transform: scale(0.9, 0.9);}
.scale07 {transform: scale(0.8, 0.8);}
.scale08 {transform: scale(0.7, 0.7);}
.scale09 {transform: scale(0.6, 0.6);}
.scale10 {transform: scale(0.5, 0.5);}

Sample3

scale X축의 값을 크게 표현한 예제입니다.

결과
scale11
scale12
scale13
scale14
scale15
CSS
.scale11 {transform: scaleX(1.1);}
.scale12 {transform: scaleX(1.2);}
.scale13 {transform: scaleX(1.3);}
.scale14 {transform: scaleX(1.4);}
.scale15 {transform: scaleX(1.5);}

Sample4

scale Y축의 값을 크게 표현한 예제입니다.

결과
scale16
scale17
scale18
scale19
scale20
CSS
.scale16 {transform: scaleY(1.1);}
.scale17 {transform: scaleY(1.2);}
.scale18 {transform: scaleY(1.3);}
.scale19 {transform: scaleY(1.4);}
.scale20 {transform: scaleY(1.5);}

회전(rotate)

속성값 예시 설명
rotate(angle) transform: rotate(10deg); 각도로 회전을 나타냅니다.
rotate3d(x,y,z,angle) transform: rotate3d(0, 1, 0, 10deg); X축, Y축, Z축 회전을 나타냅니다.
rotateX(angle) transform: rotateX(10deg); X축 회전을 나타냅니다
rotateY(angle) transform: rotateY(10deg); Y축 회전을 나타냅니다
rotateZ(angle) transform: rotateZ(10deg); Z축 회전을 나타냅니다

Sample1

rotate를 통한 회전 예제입니다.

결과
rotate01
rotate02
rotate03
rotate04
rotate05
CSS
.rotate01 {transform: rotate(10deg);}
.rotate02 {transform: rotate(20deg);}
.rotate03 {transform: rotate(30deg);}
.rotate04 {transform: rotate(40deg);}
.rotate05 {transform: rotate(50deg);}

Sample2

rotate X축을 통한 회전 예제입니다.

결과
rotate06
rotate07
rotate08
rotate09
rotate10
CSS
.rotate06 {transform: rotateX(10deg);}
.rotate07 {transform: rotateX(20deg);}
.rotate08 {transform: rotateX(30deg);}
.rotate09 {transform: rotateX(40deg);}
.rotate10 {transform: rotateX(50deg);}

Sample3

rotate Y축을 통한 회전 예제입니다.

결과
rotate11
rotate12
rotate13
rotate14
rotate15
CSS
.rotate11 {transform: rotateY(10deg);}
.rotate12 {transform: rotateY(20deg);}
.rotate13 {transform: rotateY(30deg);}
.rotate14 {transform: rotateY(40deg);}
.rotate15 {transform: rotateY(50deg);}

Sample4

rotate Y축을 통한 회전 예제입니다.

결과
rotate16
rotate17
rotate18
rotate19
rotate20
CSS
.rotate16 {transform: rotateZ(10deg);}
.rotate17 {transform: rotateZ(20deg);}
.rotate18 {transform: rotateZ(30deg);}
.rotate19 {transform: rotateZ(40deg);}
.rotate20 {transform: rotateZ(50deg);}

Sample5

rotate3D를 이용한 회전 예제입니다.

결과
rotate21
rotate22
rotate23
rotate24
rotate25
CSS
.rotate21 {transform: rotate3d(0,1,1,10deg);}
.rotate22 {transform: rotate3d(0,1,1,30deg);}
.rotate23 {transform: rotate3d(0,1,1,50deg);}
.rotate24 {transform: rotate3d(0,1,1,70deg);}
.rotate25 {transform: rotate3d(0,1,1,90deg);}

기울기(skew)

속성값 예시 설명
skew(x-angle,y-angle) transform: skew(10deg, 10deg); X좌표, Y좌표 기울기를 나태냅니다.
skewX(angle) transform: skewX(10deg); X좌표 기울기를 나태냅니다.
skewY(angle) transform: skewY(10deg); Y좌표 기울기를 나태냅니다.

Sample1

skew를 이용한 기울기 예제입니다.

결과
skew01
skew02
skew03
skew04
skew05
CSS
.skew01 {transform: skew(10deg, 10deg);}
.skew02 {transform: skew(20deg, 20deg);}
.skew03 {transform: skew(30deg, 30deg);}
.skew04 {transform: skew(40deg, 40deg);}
.skew05 {transform: skew(50deg, 50deg);}

Sample2

skew X축을 이용한 기울기 예제입니다.

결과
skew06
skew07
skew08
skew09
skew10
CSS
.skew06 {transform: skewX(10deg);}
.skew07 {transform: skewX(20deg);}
.skew08 {transform: skewX(30deg);}
.skew09 {transform: skewX(40deg);}
.skew10 {transform: skewX(50deg);}

Sample3

skew Y축을 이용한 기울기 예제입니다.

결과
skew11
skew12
skew13
skew14
skew15
CSS
.skew11 {transform: skewY(10deg);}
.skew12 {transform: skewY(20deg);}
.skew13 {transform: skewY(30deg);}
.skew14 {transform: skewY(40deg);}
.skew15 {transform: skewY(50deg);}

행렬(matrix)

속성값 예시 설명
matrix(a, b, c, d, tx, ty) transform: matrix(1, 2, -1, 1, 80, 80); 지정한 위치로 이동을 나타냅니다.
matrix3d(a,b,0,0,c,d,0,0,0,0,1,0,tx,ty,0,1) matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,-50,-100,0,1.1); 지정한 3D 위치로 이동을 나타냅니다.

호환성(Compatibility) 더보기

크롬 아이콘 파이어폭스 아이콘 사파리 아이콘 오페라 아이콘 네이버 웨일 익스플로러6 아이콘6 익스플로러7 아이콘7 익스플로러8 아이콘8 익스플로러9 아이콘9 익스플로러10 아이콘10 익스플로러11 아이콘11 엣지 아이콘 안드로이드 아이콘 ios 아이콘
transform(2D) 사용가능 사용가능 사용가능 사용가능 사용가능 사용안됨 사용안됨 사용안됨 사용안됨 사용가능 사용가능 사용가능 사용가능 사용가능
transform(3D) 사용가능 사용가능 사용가능 사용가능 사용가능 사용안됨 사용안됨 사용안됨 사용안됨 사용안됨 사용안됨 사용가능 사용가능 사용가능

참고(Reference)

  • MDN
  • CSS Transforms Module Level 1

공유하기(Share) 더보기

  • 네이버 블러그 공유하기
  • 페이스북 공유하기
  • 트위터 공유하기
  • 트위터 공유하기
  • 트위터 공유하기

공감하기(Like) 더보기

UP NEXT : Ads by Google

질문하기(Questions)
댓글쓰기 폼