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>
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>
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>