반응형
주요 참고자료
CSS 3D transform
CSS에서 perspective
속성을 사용할 때, 다양한 CSS 속성과 변환을 사용하여 3D 효과를 만들 수 있습니다. 다음은 perspective
와 함께 사용할 수 있는 속성과 변환 함수의 종합 목록입니다:
변환 속성:
transform
: 이 속성은 요소에 2D 및 3D 변환을 적용하는 데 사용되는 주요 속성입니다.transform: translateZ(50px) rotateY(45deg);
변환 함수:
translateZ(z)
: 요소를 Z축(깊이) 방향으로 이동시킵니다.transform: translateZ(100px);
translateX(x)
: 요소를 X축(수평) 방향으로 이동시킵니다.transform: translateX(50px);
translateY(y)
: 요소를 Y축(수직) 방향으로 이동시킵니다.transform: translateY(50px);
translate3d(x, y, z)
: 요소를 X, Y, Z축 방향으로 동시에 이동시킵니다.transform: translate3d(50px, 50px, 50px);
rotateX(angle)
: 요소를 X축을 기준으로 회전시킵니다.transform: rotateX(45deg);
rotateY(angle)
: 요소를 Y축을 기준으로 회전시킵니다.transform: rotateY(45deg);
rotateZ(angle)
: 요소를 Z축을 기준으로 회전시킵니다.transform: rotateZ(45deg);
rotate3d(x, y, z, angle)
: (x, y, z)로 정의된 벡터를 기준으로 요소를 회전시킵니다.transform: rotate3d(1, 1, 0, 45deg);
scaleX(factor)
: 요소를 X축을 기준으로 확대/축소합니다.transform: scaleX(1.5);
scaleY(factor)
: 요소를 Y축을 기준으로 확대/축소합니다.transform: scaleY(1.5);
scaleZ(factor)
: 요소를 Z축을 기준으로 확대/축소합니다 (모든 브라우저에서 지원되지 않음).transform: scaleZ(1.5);
scale3d(x, y, z)
: 요소를 X, Y, Z축을 기준으로 동시에 확대/축소합니다.transform: scale3d(1.5, 1.5, 1.5);
skewX(angle)
: 요소를 X축을 기준으로 기울입니다.transform: skewX(20deg);
skewY(angle)
: 요소를 Y축을 기준으로 기울입니다.transform: skewY(20deg);
matrix3d(n1, n2, ..., n16)
: 4x4 행렬을 사용하여 3D 변환을 정의합니다.transform: matrix3d(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 50, 50, 50, 1);
관련 추가 속성:
transform-style
: 중첩된 요소가 3D 공간에서 렌더링되는 방식을 지정합니다.flat
: 자식 요소가 3D 위치를 유지하지 않습니다.preserve-3d
: 자식 요소가 3D 위치를 유지합니다.transform-style: preserve-3d;
backface-visibility
: 요소의 뒷면 가시성을 제어합니다.visible
: 회전 시 뒷면이 보입니다.hidden
: 회전 시 뒷면이 보이지 않습니다.backface-visibility: hidden;
perspective
: 자식 요소들이 보이는 관점을 정의합니다.perspective: 600px;
perspective-origin
: 자식 요소들의 관점의 원점을 정의합니다.perspective-origin: 50% 50%;
여러 변환을 결합한 예제:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<style>
.container {
perspective: 1000px;
}
.box {
width: 100px;
height: 100px;
background-color: lightcoral;
transform: translateZ(100px) rotateY(45deg) scale(1.2);
transition: transform 0.5s;
}
.box:hover {
transform: translateZ(50px) rotateY(0deg) scale(1);
}
</style>
</head>
<body>
<div class="container">
<div class="box"></div>
</div>
</body>
</html>
설명: 이 예제는 .box
요소에 translateZ
, rotateY
, scale
변환을 결합하여 복잡한 3D 효과를 만들며, 마우스를 가리키면 변환이 변경됩니다.
이러한 속성과 변환은 다양한 방식으로 결합하여 웹 디자인에서 복잡하고 동적인 3D 효과를 만들 수 있습니다.
반응형
'UX 개발 > CSS - 3D' 카테고리의 다른 글
CSS 3D 최적화하기 - transform-style: preserve-3d (0) | 2024.06.22 |
---|---|
CSS 3D 시작하기 - perspective 속성의 이해 (0) | 2024.06.22 |