본문 바로가기
  • Welcome to Smart-i
  • I can do it!
  • Those who come, be rich.
코딩공부

CSS3 2D, 3D Transform

by ~~~~~하이글로시~~~~~ 2020. 10. 27.

2D transform, 3D transform

2D Transform

CSS3에서는 transform 속성을 사용하여 HTML 요소의 모양, 크기, 위치 등을 자유롭게 바꿀 수 있다.

 

 

transform 속성은 HTML 요소에 대해 다음과 같은 동작을 제공한다.

 - 해당 요소를 움직인다.
 - 해당 요소를 회전시킨다.
 - 해당 요소의 크기를 변경한다.
 - 해당 요소를 기울인다.
 - 해당 요소에 위의 네 가지 동작 중 원하는 동작들을 한 번에 적용시킨다.

CSS3에서는 transform 속성을 사용하여 2D 변형(transform)과 3D 변형(transform)을 모두 제공한다.

CSS 좌표 체계

transform 속성에서 사용하는 x, y, z좌표는 다음 그림과 같은 좌표 체계를 따른다.
CSS 좌표 체계에서 기준점은 브라우저의 왼쪽 상단이 됩니다.
Z축은 입체적인 방향으로 모니터를 바라보고 있는 여러분이 있는 방향을 가리키는 좌표축이다.
또한, 각 좌표축의 화살표 방향이 양의 방향이며, 반대쪽이 음의 방향을 가리킨다.

CSS3 2D 변형(transform) 지원버전

CSS3 2D 변형(transform)을 지원하는 주요 웹 브라우저의 버전은 다음과 같다. 또한, 브라우저별로 벤더 프리픽스(vendor prefix)를 이용해 이 기능을 최초로 지원한 버전도 같이 표기했다.

속성

ie

chrome

firefox

safari

opera

transform / transform-origin

10.0 / 9.0 -ms-

36.0 / 4.0 -webkit-

16.0 / 3.5 -moz-

9.0 / 3.2 -webkit-

23.0 / 15.0 -webkit / 12.1 / 10.5 -o-

2D 변형(transform)

2D 변형(transform)을 위해 제공되는 메소드(method)는 다음과 같다.

  1. translate()
  2. rotate()
  3. scale()
  4. skew()
  5. matrix()

translate() 메소드

translate() 메소드는 현재 위치에서 해당 요소를 주어진 x축과 y축의 거리만큼 이동시킨다. 주어진 거리가 양수이면 해당 축의 양의 방향으로, 음수이면 해당 축의 음의 방향으로 이동시킨다.

#trans {
    -webkit-transform: translate(100px, 50px);
    -ms-transform: translate(100px, 50px);
    transform: translate(100px, 50px);
}

rotate() 메소드

rotate() 메소드는 해당 요소를 주어진 각도만큼 시계 방향이나 반시계 방향으로 회전시킨다. 주어진 각도가 양수이면 시계 방향으로, 음수이면 반시계 방향으로 회전시킨다.

#rotate {
    -webkit-transform: rotate(30deg);
    -ms-transform: rotate(30deg);
    transform: rotate(30deg);
}

scale() 메소드

scale() 메소드는 해당 요소의 크기를 주어진 배율만큼 늘리거나 줄인다. 주어진 배율이 1보다 크면 크기를 늘리고, 0보다 크고 1보다 작으면 크기를 줄인다.

#scale_inc {
    -webkit-transform: scale(1.5, 2);
    -ms-transform: scale(1.5, 2);
    transform: scale(1.5, 2);
}
#scale_dec {
    -webkit-transform: scale(0.7, 0.7);
    -ms-transform: scale(0.7, 0.7);
    transform: scale(0.7, 0.7);
}

 

 

skewX() 메소드

skewX() 메소드는 해당 요소를 주어진 각도만큼 x축 방향으로 기울인다.
주어진 각도가 양수이면 x축의 양의 방향으로, 음수이면 x축의 음의 방향으로 기울인다.

#skew_x {
    -webkit-transform: skewX(20deg);
    -ms-transform: skewX(20deg);
    transform: skewX(20deg);
}

skewY() 메소드

skewY() 메소드는 해당 요소를 주어진 각도만큼 y축 방향으로 기울인다.
주어진 각도가 양수이면 y축의 양의 방향으로, 음수이면 y축의 음의 방향으로 기울인다.

#skew_y {
    -webkit-transform: skewY(20deg);
    -ms-transform: skewY(20deg);
    transform: skewY(20deg);
}

skew() 메소드

skew() 메소드는 해당 요소를 주어진 각도만큼 각각 x축과 y축 방향으로 기울인다.

#skew {
    -webkit-transform: skew(20deg, 30deg);
    -ms-transform: skew(20deg, 30deg);
    transform: skew(20deg, 30deg);
}

matrix() 메소드

matrix() 메소드는 모든 2D transform 메소드를 한 줄에 설정할 수 있도록 해준다.

이 메소드는 2D 변형(transform)과 관련된 6개의 매개변수를 가진다. matrix() 메소드의 매개변수 순서는 다음과 같다.

문법 : matrix(scaleX(), skewY(), skewX(), scaleY(), translateX(), translateY());

#matrix {
    -webkit-transform: matrix(0.7, 0, 0, 0.7, 1, 0);
    -ms-transform: matrix(0.7, 0, 0, 0.7, 0, 0);
    transform: matrix(2, 0.3, 0.2, 1.3, 150, 100);
}

CSS3 2D transform 속성

속성

설명

transform

요소에 2D 또는 3D 변형(transform)을 적용함.

transform-origin

요소에 변형(transform)을 적용하는 변환 중심을 설정함.

메소드 설명

메소드

설명

matrix(n,n,n,n,n,n)

6개의 매개변수로 모든 2D 변형 메소드를 한 번에 설정함.

translate(x,y)

현재 위치에서 해당 요소를 주어진 x축과 y축의 거리만큼 이동시킴.

translateX(n)

현재 위치에서 해당 요소를 주어진 x축의 거리만큼 이동시킴.

translateY(n)

현재 위치에서 해당 요소를 주어진 y축의 거리만큼 이동시킴.

rotate(각도)

해당 요소를 주어진 각도만큼 시계 방향이나 반시계 방향으로 회전시킴.

scale(x,y)

해당 요소의 크기를 주어진 배율만큼 늘리거나 줄임.

scaleX(n)

해당 요소의 x축 크기를 주어진 배율만큼 늘리거나 줄임.

scaleY(n)

해당 요소의 y축 크기를 주어진 배율만큼 늘리거나 줄임.

skew(x축각도,y축각도)

해당 요소를 주어진 각도만큼 각각 x축과 y축 방향으로 기울임.

skewX(각도)

해당 요소를 주어진 각도만큼 x축 방향으로 기울임.

skewY(각도)

해당 요소를 주어진 각도만큼 y축 방향으로 기울임.

 

 

3D Transform

CSS3에서는 transform 속성을 사용하여 HTML 요소의 모양, 크기 위치 등을 입체적으로 변형시킬 수 있다.

CSS3 3D변형(transform) 지원버전

CSS3 3D 변형(transform)을 지원하는 주요 웹 브라우저의 버전은 다음과 같다.
또한, 브라우저별로 벤더 프리픽스(vendor prefix)를 이용해 이 기능을 최초로 지원한 버전도 같이 표기했다.

속성

ie

chrome

firefox

safari

opera

transform / transform-origin / perspective / perspective-origin / backface-visibility

10.0

36.0 / 12.0 -webkit-

16.0 / 10.0 -moz-

9.0 / 4.0 -webkit-

23.0 / 15.0 -webkit

transform-style

11.0

36.0 / 12.0 -webkit-

16.0 / 10.0 -moz-

9.0 / 4.0 -webkit-

23.0 / 15.0 -webkit

3D Transform

3D 변형(transform)을 위해 제공되는 메소드(method)는 다음과 같다.

  1. rotate()
  2. translate()
  3. scale()
  4. matrix()
  5. perspective()

rotateX() 메소드

rotateX() 메소드는 해당 요소를 주어진 각도만큼 x축을 기준으로 회전시킨다. 주어진 각도가 양수이면 x축 양의 방향으로, 음수이면 x축 음의 방향으로 회전시킨다.

#rotate_01 {
    -webkit-transform: rotateX(20deg);
    transform: rotateX(20deg);
}

rotateY() 메소드

rotateY() 메소드는 해당 요소를 주어진 각도만큼 y축을 기준으로 회전시킨다.
주어진 각도가 양수이면 y축 양의 방향으로, 음수이면 y축 음의 방향으로 회전시킨다.

#rotate_01 {
    -webkit-transform: rotateY(20deg);
    transform: rotateY(20deg);
}

rotateZ() 메소드

rotateZ() 메소드는 해당 요소를 주어진 각도만큼 z축을 기준으로 회전시킨다.
주어진 각도가 양수이면 z축 양의 방향으로, 음수이면 z축 음의 방향으로 회전시킨다.

#rotate_01 {
    -webkit-transform: rotateZ(20deg);
    transform: rotateZ(20deg);
}

translate3d() 메소드

translate3d() 메소드는 현재 위치에서 해당 요소를 주어진 x축과 y축, z축의 거리만큼 이동시킨다.
주어진 거리가 양수이면 해당 축의 양의 방향으로, 음수이면 해당 축의 음의 방향으로 이동시킨다.

#trans_01 {
    -webkit-transform: translate(100px, 50px);
    -ms-transform: translate(100px, 50px);
    transform: translate(100px, 50px);
}
#trans_02 {
    -webkit-transform: translate3d(100px, 50px, -150px);
    transform: translate3d(100px, 50px, -150px);
}

rotate3d(), translate3d(), scale3d() 메소드와 같이 입체적으로 보여지는 3D 변형에 관련된 메소드는 원근감을 표현할 기준을 명시해야 한다.
위의 예제에서는 perspective() 메소드를 사용하여 원근감을 표현하기 위해 사용할 픽셀 수를 500px로 설정하고 있다.

 

 

CSS3 3D transform 속성

속성

설명

transform

요소에 2D 또는 3D 변형(transform)을 적용함.

transform-origin

요소에 변형(transform)을 적용하는 변환 중심을 설정함.

transform-style

요소에 변형을 적용할 때 그 변환이 자식(child) 요소들에게도 적용될지 안 될지를 설정함.

perspective

3D 요소에 원근감을 표현할 때 사용할 픽셀 수를 설정함.

perspective-origin

3D 요소에 원근감을 표현할 때 사용할 기준 축을 설정함.

backface-visibility

요소의 앞면만을 표현하고, 뒷면을 표현할지 안 할지를 설정함.

CSS3 3D transform 메소드

메소드

설명

matrix3d(n×16)

4x4 행렬을 이용한 16개의 매개변수로 모든 3D 변형 메소드를 한 번에 설정함.

rotate3d(x,y,z,angle)

해당 요소를 주어진 각도만큼 x, y축과 z축을 기준으로 회전시킴.

rotateX(angle)

해당 요소를 주어진 각도만큼 x축을 기준으로 회전시킴.

rotateY(angle)

해당 요소를 주어진 각도만큼 y축을 기준으로 회전시킴.

rotateZ(angle)

해당 요소를 주어진 각도만큼 z축을 기준으로 회전시킴.

translate3d(x,y,z)

현재의 위치에서 해당 요소를 주어진 x, y축과 z축의 거리만큼 이동시킴.

translateX(x)

현재의 위치에서 해당 요소를 주어진 x축의 거리만큼 이동시킴.

translateY(y)

현재의 위치에서 해당 요소를 주어진 y축의 거리만큼 이동시킴.

translateZ(z)

현재의 위치에서 해당 요소를 주어진 z축의 거리만큼 이동시킴.

scale3d(x,y,z)

해당 요소의 크기를 주어진 배율만큼 x, y축과 z축 방향으로 늘리거나 줄임.

scaleX(x)

해당 요소의 x축 크기를 주어진 배율만큼 늘리거나 줄임.

scaleY(y)

해당 요소의 y축 크기를 주어진 배율만큼 늘리거나 줄임.

scaleZ(z)

해당 요소의 z축 크기를 주어진 배율만큼 늘리거나 줄임.

perspective(n)

3D 요소에 원근감을 표현할 때 사용할 픽셀 수를 설정함.

 

 

 

[세상살이] - [클로바 더빙] 유튜버, 온라인 강의영상 등 만들때 목소리가 자신 없다면

 

[클로바 더빙] 유튜버, 온라인 강의영상 등 만들때 목소리가 자신 없다면

클로바 더빙 유튜버, 온라인 강의영상 등 만들때 목소리가 자신 없다면.. 요즘같은 코로나 대유행 상황에서 학원, 학교 등은 온라인 수업이 많아지고, 유튜버 등 영상 컨텐츠물에 소리가 빠질 수

smarti.tistory.com

[코딩공부] - CSS와 jQuery로 풍경 애니메이션 만들기 예제 다운로드

 

CSS와 jQuery로 풍경 애니메이션 만들기 예제 다운로드

CSS와 jQuery로 풍경 애니메이션 만들기 예제보기 다운로드 html에 배경 이미지로 풍경을 구성할 div를 만든다. 하늘, 구름, 태양, 달, 별 그리고 별똥별로 이루어 질 것이다. 석양의 색변화는 노란색

smarti.tistory.com

[코딩공부] - CSS fixedNavigation2 예제 다운로드

 

CSS fixedNavigation2 예제 다운로드

FixedNavigation 2 Tutorial 예제보기 다운로드 네비게이션에 필요한 목록 요소는 내부에 링크가 있는 간단한 순서없는 목록이다. 목록은 나중에 javascript에서 참조하기 위해 아이디를 가져온다. jQuery를

smarti.tistory.com

 

[코딩공부] - CSS 위치속성, 플로트, 정렬

 

CSS 위치속성, 플로트, 정렬

CSS float float 속성은 해당 HTML 요소가 주변의 다른 요소들과 자연스럽게 어울리도록 만들어 준다. 이 속성은 본래 위와 같은 목적으로 만들어졌지만, 현재는 웹 페이지의 레이아웃(layout)을 작성할

smarti.tistory.com

[디자인공부] - 포토샵 3D 불투명 아크릴 효과 문자 만들기

 

포토샵 3D 불투명 아크릴 효과 문자 만들기

Adobe Photoshop 3D 도구를 이용한 불투명 아크릴 효과 만들기 포토샵의 3D 도구 및 설정과 조정 레이어를 활용하여 단순하고 평평하며 희미한 3D 텍스트 효과를 만들어 보자. 먼저 레이어 창을 보자

smarti.tistory.com

 

관련글

 

댓글