CSS中的translateZ()函数用于在3D空间中沿Z轴平移或移动元素,即离观察者更近或更远。它是 CSS 中的转换函数之一,允许您修改网页上元素的位置和外观。结果是 <transform-function> 数据类型。
属性值
函数translateZ( ) 只能采用一个参数。
tz:它是一个 <length> 值指定元素向内或向外移动的距离。表示平移向量的 z 分量 [0, 0, tz]。正值将元素移向观察者,负值则移得更远。
语法
transform: translateZ(tz);
perspective() 函数定义虚拟距离计算机屏幕平面和要应用translateZ 的HTML 元素之间。
使用perspective() 和translateZ()函数 会出现一些意外行为。
当提供给translateZ() 的值大于或等于perspective() 的值时,应用该值的HTML 元素就会消失。
perspective() 允许使用除零值 (0px, 0, 0em) 以外的任何值,因为它会导致 translateZ() 效果被忽略。
CSS translateZ(): 悬停时转换
以下是在按钮上与伪类 :hover 一起使用的 translateZ() 函数的示例。悬停时按钮的大小和位置会发生变化:
<html>
<head>
<style>
div {
height: 200px;
width: 300px;
border: 5px solid black;
background-color: beige;
margin: 50px;
display: inline-block;
}
button {
transform: perspective(150px) translateZ(20px);
transition: transform 100ms linear;
width: 80px;
height: 30px;
background-color: blue;
color: white;
margin: 30px;
}
button:hover {
transform: perspective(150px) translateZ(80px);
}
</style>
</head>
<body>
<div>
<h2>translateZ() example</h2>
<button>click</button>
</div>
</body>
</html>
CSS translateZ(): perspective()进行转换
以下是translateZ()函数和perspective()的示例。应用该函数的div元素,位置基于传递给translateZ()函数的值。
<html>
<head>
<style>
div {
height: 110px;
width: 110px;
border: 2px solid black;
background-color: aquamarine;
margin: 15px;
}
.translate-z-length {
transform: perspective(200px) translateZ(50px);
background-color: tomato;
}
</style>
</head>
<body>
<div>No translateZ() applied</div>
<div class="translate-z-length">translateZ() applied</div>
</body>
</html>
更改perspective()和translateZ()的值以查看效果。
perspective() 函数负责相对于平面(即屏幕表面 (z=0))定位查看器。因此,在上面的示例中,值 0f 200px 表示用户位于图像前面 200 像素。
translateZ() 的值 50px 表示元素从屏幕向外移动 50px,朝向用户。在 2D 显示器上查看时,该元素看起来更大。
编写函数的顺序很重要,因为变换的组合是不可交换的。 Perspective()函数应该放在translateZ()函数之前。