CSS3 transform 属性

  • ransform 属性向元素应用 2D 或 3D 转换,该属性允许对元素进行旋转、缩放、移动或倾斜。
默认值: none
继承性: no
版本: CSS3
JavaScript 语法: object.style.transform="rotate(7deg)"

浏览器支持

IE

Internet Explorer 10 + 完全支持 transform 属性

Internet Explorer 9 使用 -ms-transform 属性替代(且仅适用于 2D 转换)

Firefox Firefox 完全支持 transform 属性
Chrome Chrome 支持替代的 -webkit-transform 属性(适用于 3D 和 2D 转换)
Opera Opera 支持 transform 属性,但只支持 2D 转换
Safari Safari 支持替代的 -webkit-transform 属性(适用于 3D 和 2D 转换)

语法

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 转换元素定义透视视图。 测试

案件实例

rotate 2D 旋转

  • rotate(angle):定义 2D 旋转,rotate(旋转)单位为 deg(度),如 45deg 表示旋转 45度,90deg 表示旋转 90度。
  • 以被旋转元素本身中心为轴进行旋转!
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title></title>
    <style type="text/css">
        .div1 {
            width: 300px;
            height: 200px;
            background-color: #888888;
            position: relative;
        }
        .div2 {
            width: 200px;
            height: 50px;
            background-color: #122b40;
            position: absolute;
            left: calc(50% - 100px);
            top: calc(50% - 25px);

            /* 旋转元素,Internet Explorer 10、Firefox*/
            transform: rotate(45deg);
            /**浏览器兼容*/
            -ms-transform: rotate(45deg); /* Internet Explorer */
            -moz-transform: rotate(45deg); /* Firefox */
            -webkit-transform: rotate(45deg); /* Safari 和 Chrome */
            -o-transform: rotate(45deg); /* Opera */
        }
    </style>
</head>
<body>
<div class="div1">
    <div class="div2">
    </div>
</div>
</body>
</html>

CSS3 transform 旋转属性

translate 2D 偏移

  • translate(x,y)     定义 2D 图片偏移,x 表示向右偏移,负数则向相反方向(左)偏移;y 表示向下偏移,负数则向相反方向(上)偏移。
  • 单位可以是像素 px。
  • x,y 可以只使用其中一个值,如 translate(20px) 表示向 x 方向偏移20px,y 方向不变;translate(20px,20px)  表示 x 方向 y 方向同时偏移 20px。
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title></title>
    <style type="text/css">
        .div1 {
            width: 300px;
            height: 200px;
            background-color: #888888;
            position: relative;
        }
        .div2 {
            width: 200px;
            height: 50px;
            background-color: #122b40;
            position: absolute;
            left: 50%;
            top: 50%;

            /**x 方向反向偏移100px,y 方向反向偏移25px,效果就是div 正好位于 div 正中心*/
            transform: translate(-100px, -25px); /*IE 10,Firefox*/
            -ms-transform: translate(-100px, -25px); /* Internet Explorer 9*/
            -moz-transform: translate(-100px, -25px); /* Firefox */
            -webkit-transform: translate(-100px, -25px); /* Safari 和 Chrome */
            -o-transform: translate(-100px, -25px); /* Opera */
        }
    </style>
</head>
<body>
<div class="div1">
    <div class="div2">
    </div>
</div>
</body>
</html>

scale 2D 缩放

  • scale(x,y) 定义 2D 缩放转换,以元素中心点进行比例缩放。
  • x,y 表示比例,无单位,如 scale(0.5,1.5) 表示 x 方向缩小 0.5 倍,y 方向大小再乘以 1.5 。
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title></title>
    <style type="text/css">
        .div1 {
            width: 300px;
            height: 200px;
            background-color: #888888;
            position: relative;
        }
        .div2 {
            width: 200px;
            height: 50px;
            background-color: #122b40;
            position: absolute;
            left: calc(50% - 100px);
            top: calc(50% - 25px);

            /**x方向 缩小一半,y 方向增加一半*/
            transform: scale(0.5, 1.5); /*IE 10,Firefox*/
            -ms-transform: scale(0.5, 1.5); /* Internet Explorer 9*/
            -moz-transform: scale(0.5, 1.5); /* Firefox */
            -webkit-transform: scale(0.5, 1.5); /* Safari 和 Chrome */
            -o-transform: scale(0.5, 1.5); /* Opera */
        }
    </style>
</head>
<body>
<div class="div1">
    <div class="div2">
    </div>
</div>
</body>
</html>

CSS3 transform 旋转属性

skew 2D 倾斜

  • skew(x-angle,y-angle) 定义沿着 X 和 Y 轴的 2D 倾斜转换,X 与 Y 可以只使用一个
  • 倾斜单位为 deg(度),skew(45deg,10deg) 表示 x 方向倾斜45度,y方向倾斜 10度;shew(45deg) 表示 x方向倾斜45度,y 方向不变。
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title></title>
    <style type="text/css">
        .div1 {
            width: 300px;
            height: 200px;
            background-color: #888888;
            position: relative;
        }

        .div2 {
            width: 200px;
            height: 50px;
            background-color: #122b40;
            position: absolute;
            left: calc(50% - 100px);
            top: calc(50% - 25px);
            color: white;

            /**x方向倾斜45度,y 方向不变*/
            transform: skew(45deg); /*IE 10,Firefox*/
            -ms-transform: skew(45deg); /* Internet Explorer 9*/
            -moz-transform: skew(45deg); /* Firefox */
            -webkit-transform: skew(45deg); /* Safari 和 Chrome */
            -o-transform: skew(45deg); /* Opera */
        }
    </style>
</head>
<body>
<div class="div1">
    <div class="div2">
        万里长城
    </div>
</div>
</body>
</html>

CSS3 transform 旋转属性

 

相关文章: