3D변환을 하려면 3D 공간의 원근감을 지정하여야 합니다.
다음 두가지 방법으로 원근감을 지정할 수 있습니다.
|
transform 속성의 perspective 메서드로 설정합니다. 해당 요소 개별 원근감을 지정합니다. |
|
요소에 perspective 속성으로 설정합니다. 지정한 요소의 하위 요소에 통일된 원근감을 지정합니다. 기본값은 none이며 0과 같습니다. |
perspective의 값으로 위의 예제에서는 600px과 150px을 주었는데 이 값은 사용자로 부터 요소까지의 거리라고 생각하세요.
값이 클수록 대상(요소)이 멀리 있으므로 심도가 낮습니다.
값이 작을수록 대상(요소)이 가까이 있으므로 심도가 깊습니다.
위의 두가지 형식은 모두 3D공간을 트리거 하지만 차이점이 있습니다.
먼저 transform: perspective() 메서드는 요소 1개를 적용하는데 편리하지만 여러요소에 적용하려면 예상대로 정렬되지 않습니다.
여러요소에 동일한 변형을 사용하면 각 요소마다 자체 소실점이 생깁니다.
이 문제를 해결하려면 perspective 속성을 사용하여 하위 요소에 대해 동일한 3D 공간을 공유할 수 있습니다.
perspective-origin: x-axis y-axis|initial|inherit;
사용자가 3D 공간의 요소를 보는 위치를 정의합니다.
3D 요소에 원근감이 적용되어야 합니다.
x-axis |
X축을 기준으로 시점을 정의합니다. left, center, right, length 의 값을 지정합니다. 기본값 : 50% |
y-axis |
y축을 기준으로 시점을 정의합니다. top, center, bottom, length 의 값을 지정합니다. 기본값 : 50% |
transform-style: flat|preserve-3d|initial|inherit;
3D 공간에서 자식요소를 렌더링 하는 방법을 지정합니다.
flat | 기본값, 자식 요소는 3D 공간을 가지지 못합니다. |
preserve-3d | 자식요소는 부모의 3D 공간을 공유하며, 독립된 변형이 가능합니다.. |
backface-visibility: visible|hidden|initial|inherit;
요소가 회전했을때 뒷면이 보여지는지 여부를 지정합니다.
visible | 기본값, 요소가 회전되었을때 뒷면(회전 후 뒷에서 보이는 면)이 보여진다. |
hidden | 사용자 시점에서 요소가 회전되었을때 뒷면을 보이지 않게 합니다. |