# 3D转换

# rotateX()

rotateX()方法,围绕其在一个给定度数X轴旋转的元素。

# rotateY()

rotateY()方法,围绕其在一个给定度数Y轴旋转的元素。

<div style="
	width:200px;
	height:200px;
	background:#00EEEE;
	color:#FFF;
	border-radius:5px;
	text-align:center;
	line-height:200px;
	margin:10px auto;
	transform:rotate(45deg);
	opacity:0.5"
>
2Drotate(45deg)
</div> 

<div style="
	width:200px;
	height:200px;
	background:#00EEEE;
	color:#FFF;
	border-radius:5px;
	text-align:center;
	line-height:200px;
	margin:10px auto;
	opacity:0.5;
	transform:rotateX(45deg)"
>
3DrotateX(45deg)
</div>

<div style="
	width:200px;
	height:200px;
	background:#00EEEE;
	color:#FFF;
	border-radius:5px;
	text-align:center;
	line-height:200px;
	margin:10px auto;
	opacity:0.5;
	transform:rotateY(45deg)"
>
3DrotateY(45deg)
</div>
2Drotate(45deg)
3D2DrotateX(45deg)
3D2DrotateY(45deg)
transform: none|transform-functions;
描述
none 定义不进行转换。
matrix(n,n,n,n,n,n) 定义 2D 转换,使用六个值的矩阵。
matrix3d(n,n,n,n,n,n,n,n,n,n,n,n,n,n,n,n) 定义 3D 转换,使用 16 个值的 4x4 矩阵。
translate(x,y) 定义 2D 转换。
translate3d(x,y,z) 定义 3D 转换。
translateX(x) 定义转换,只是用 X 轴的值。
translateY(y) 定义转换,只是用 Y 轴的值。
translateZ(z) 定义 3D 转换,只是用 Z 轴的值。
scale(x[,y]?) 定义 2D 缩放转换。
scale3d(x,y,z) 定义 3D 缩放转换。
scaleX(x) 通过设置 X 轴的值来定义缩放转换。
scaleY(y) 通过设置 Y 轴的值来定义缩放转换。
scaleZ(z) 通过设置 Z 轴的值来定义 3D 缩放转换。
rotate(angle) 定义 2D 旋转,在参数中规定角度。
rotate3d(x,y,z,angle) 定义 3D 旋转。
rotateX(angle) 定义沿着 X 轴的 3D 旋转。
rotateY(angle) 定义沿着 Y 轴的 3D 旋转。
rotateZ(angle) 定义沿着 Z 轴的 3D 旋转。
skew(x-angle,y-angle) 定义沿着 X 和 Y 轴的 2D 倾斜转换。
skewX(angle) 定义沿着 X 轴的 2D 倾斜转换。
skewY(angle) 定义沿着 Y 轴的 2D 倾斜转换。
perspective(n) 为 3D 转换元素定义透视视图。

# perspective(n)

n 元素距离视图的距离,以像素计。

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"> 
<title></title> 
<style>
#div1
{
	position: relative;
	height: 150px;
	width: 150px;
	margin: 50px;
	padding:10px;
	border: 1px solid black;
	perspective:150;
	-webkit-perspective:150; /* Safari and Chrome */
}

#div2
{
	padding:50px;
	position: absolute;
	border: 1px solid black;
	background-color: red;
	transform: rotateX(50deg);
	
}
</style>
</head>

<body>

<div id="div1">
  <div id="div2">HELLO</div>
</div>
 
</body>
</html>
HELLO
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"> 
<title></title> 
<style>
#div3
{
	position: relative;
	height: 150px;
	width: 150px;
	margin: 50px;
	padding:10px;
	border: 1px solid black;

}

#div4
{
	padding:50px;
	position: absolute;
	border: 1px solid black;
	background-color: red;
	transform: rotateX(50deg);
	
}
</style>
</head>

<body>

<div id="div3">
  <div id="div4">HELLO</div>
</div>
 
</body>
</html>
HELLO

# transform-style

transform-style 属性指定嵌套元素是怎样在三维空间中呈现。

transform-style: flat|preserve-3d;
/*flat	表示所有子元素在2D平面呈现。默认*/
/*preserve-3d	表示所有子元素在3D空间中呈现。*/
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"> 
<title></title>
<style>
#div5
{
	position: relative;
	height: 200px;
	width: 200px;
	margin: 100px;
	padding:10px;
	border: 1px solid black;
}

#div6
{
	padding:50px;
	position: absolute;
	border: 1px solid black;
	background-color: red;
	transform: rotateY(60deg);
	transform-style: preserve-3d;
	-webkit-transform: rotateY(60deg); 
	-webkit-transform-style: preserve-3d;
}

#div7
{
	padding:40px;
	position: absolute;
	border: 1px solid black;
	background-color: yellow;
	transform: rotateY(-60deg);
	-webkit-transform: rotateY(-60deg); 

}

</style>
</head>

<body>

<div id="div5">
  <div id="div6">HELLO
  	<div id="div7">YELLOW</div>
  </div>
</div>

</body>
</html>
HELLO
YELLOW

# perspective-origin

perspective-origin 属性定义 3D 元素所基于的 X 轴和 Y 轴。该属性允许您改变 3D 元素的底部位置。 定义时的perspective -Origin属性,它是一个元素的子元素,透视图,而不是元素本身。

perspective-origin: x-axis y-axis;

# backface-visibility

backface-visibility:hidden当处于背面时隐藏

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8" />
		<meta name="viewport" content="width=device-width, initial-scale=1">
		<title></title>
		<style>
			.div8{
				width:100px;
				height:100px;
				background: #00AFEF;
				transform:rotateY(180deg);
				/* backface-visibility: hidden; */
			}
		</style>
	</head>
	<body>
		<div class="div8">1112</div>
	</body>
</html>
11312
最后更新: 1/10/2020, 4:02:57 PM