CSS transform 属性

CSS transform 语法

在 CSS 中,transform 属性用于对元素进行 2D 或 3D 变换。

语法:

transform: 函数;

说明:

transform 是一个 CSS 函数,常用的函数如下表所示。

CSS 变换函数
平移
translate() 在 2D 平面上移动元素
translateX() 只在水平方向上移动元素
translateY() 只在垂直方向上移动元素
translate3d() 在 3D 空间中移动元素
translateZ() 在 3D 空间的 Z 轴上移动元素(需要设置 perspective
缩放
scale() 在 2D 平面上缩放元素
scaleX() 只在水平方向上缩放元素
scaleY() 只在垂直方向上缩放元素
scale3d() 在 3D 空间中缩放元素
scaleZ() 在 3D 空间的 Z 轴上缩放元素(需要设置 perspective)
旋转
rotate() 在 2D 平面上旋转元素
rotateX() 沿 X 轴旋转元素
rotateY() 沿 Y 轴旋转元素
rotate3d() 沿 3D 空间中定义的向量旋转元素
rotateZ() 沿 3D 空间的 Z 轴旋转元素
倾斜
skew() 在 2D 平面上倾斜元素
skewX() 只在水平方向上倾斜元素
skewY() 只在垂直方向上倾斜元素
矩阵
matrix() 在 2D 平面上应用自定义的 2D 变换矩阵
matrix3d() 在 3D 空间中应用自定义的 3D 变换矩阵

注意:

  • transform 属性只能用于块级元素和内联块级元素,而不能用于行内元素。
  • transform 属性的默认变换原点是元素的中心(transform-origin: center center;),不过我们可以通过 transform-origin 属性来改变这个原点。

CSS transform 摘要

属于 CSS3 变换
使用频率
是否继承
默认值 none
兼容性 查看
官方文档 查看
MDN 查看

CSS transform 示例

接下来,我们通过几个简单的例子来讲解一下 CSS transform 属性是如何使用的。

示例 1:transform 实现元素平移

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title></title>
    <style>
        div {
            width: 100px;
            height: 100px;
            background-color: lightskyblue;
            transition: transform 0.5s;
        }
        div:hover {
            transform: translate(200px, 0);
        }
    </style>
</head>
<body>
    <div></div>
</body>
</html>

页面效果如下图所示。

translate() 实现水平移动

分析:

transform: translate(200px, 0) 表示将 div 元素沿水平方向向右移动 200px,然后垂直方向移动为 0。

示例 2:transform 实现元素缩放

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title></title>
    <style>
        div {
            width: 100px;
            height: 100px;
            margin: 50px;
            background-color: lightskyblue;
            transition: transform 0.25s;
        }
        div:hover {
            transform: scale(1.2);
        }
    </style>
</head>
<body>
    <div></div>
</body>
</html>

默认情况下,页面效果如下图 1 所示。当鼠标移到 div 元素上时,页面效果如下图 2 所示。

transform 实现元素缩放1

transform 实现元素缩放2

分析:

在这个例子中,我们设置 transform: scale(1.2);,此时当鼠标移到 div 元素上时,div 元素会在水平和垂直这 2 个方向同时放大 1.2 倍。下面 2 种写法是等价的。

/* 写法1 */
transform: scale(1.2);
/* 写法2 */
transform: scale(1.2, 1.2);

示例 3:transform 实现元素倾斜

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title></title>
    <style>
        div {
            width: 100px;
            height: 100px;
            margin: 50px;
            background-color: lightskyblue;
            transform: skew(20deg);
        }
    </style>
</head>
<body>
    <div></div>
</body>
</html>

页面效果如下图所示。

transform 实现元素倾斜

分析:

在这个例子中,transform: skew(20deg) 表示将 div 元素沿 X 轴倾斜 20 度,来创建平行四边形效果。由于这里并没有指定 Y 轴倾斜角度,此时 Y 轴倾斜角度会使用默认值(即 0),因此最终只会影响水平方向。

示例 4:transform 实现元素旋转

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title></title>
    <style>
        div {
            width: 100px;
            height: 100px;
            margin: 50px;
            background-color: lightskyblue;
            transform: rotate(45deg);
        }
    </style>
</head>
<body>
    <div></div>
</body>
</html>

页面效果如下图所示。

transform 实现元素旋转

分析:

在这个例子中,transform: rotate(45deg) 表示将 div 元素顺时针旋转 45 度。旋转只影响元素的可视方向,原始空间在文档流中保持不变。

上一篇: column-rule

下一篇: transform-origin

给站长反馈

绿叶网正在不断完善中,小伙伴们如果发现任何问题,还望多多给站长反馈,谢谢!

邮箱:lvyenet@vip.qq.com

「绿叶网」服务号
绿叶网服务号放大
关注服务号,微信也能看教程。
绿叶网服务号