试一试
transform: translate(0);
transform: translate(42px, 18px);
transform: translate(-2.1rem, -2ex);
transform: translate(3ch, 3mm);
<section id="default-example">
<img
class="transition-all"
id="static-element"
src="/shared-assets/images/examples/firefox-logo.svg"
width="200" />
<img
class="transition-all"
id="example-element"
src="/shared-assets/images/examples/firefox-logo.svg"
width="200" />
</section>
#static-element {
opacity: 0.4;
position: absolute;
}
#example-element {
position: absolute;
}
此变换由一个二维向量 [tx, ty] 表示。其坐标定义了元素在每个方向上移动的距离。
语法
css
/* Single <length-percentage> values */
transform: translate(200px);
transform: translate(50%);
/* Double <length-percentage> values */
transform: translate(100px, 200px);
transform: translate(100px, 50%);
transform: translate(30%, 200px);
transform: translate(30%, 50%);
值
- 单个
<length-percentage>值 -
此值是一个
<length>或<percentage>,表示平移向量 [tx, 0] 的横坐标(水平,x 分量)。平移向量的纵坐标(垂直,y 分量)将设置为0。例如,translate(2px)等同于translate(2px, 0)。百分比值是指由transform-box属性定义的参考框的宽度。 - 双
<length-percentage>值 -
此值描述了两个
<length>或<percentage>值,分别表示平移向量 [tx, ty] 的横坐标(水平,x 分量)和纵坐标(垂直,y 分量)。作为第一个值的百分比是指由transform-box属性定义的参考框的宽度,作为第二个值的百分比是指其高度。
正式语法
<translate()> =
translate( <length-percentage> , <length-percentage>? )
<length-percentage> =
<length> |
<percentage>
示例
使用单轴平移
HTML
html
<div>Static</div>
<div class="moved">Moved</div>
<div>Static</div>
CSS
css
div {
width: 60px;
height: 60px;
background-color: skyblue;
}
.moved {
/* Equal to: translateX(10px) or translate(10px, 0) */
transform: translate(10px);
background-color: pink;
}
结果
结合 y 轴和 x 轴平移
HTML
html
<div>Static</div>
<div class="moved">Moved</div>
<div>Static</div>
CSS
css
div {
width: 60px;
height: 60px;
background-color: skyblue;
}
.moved {
transform: translate(10px, 10px);
background-color: pink;
}
结果
规范
| 规范 |
|---|
| CSS 变换模块级别 1 # funcdef-transform-translate |
浏览器兼容性
加载中…