transform
2020-12-24 本文已影响0人
成神之路_be73
一 transform的出现
是css3(层叠样式表)中的一个属性
于2009年3月20日发布CSS3 3D Transforms模块,该模块定义了CSS3 3D转换模型。
可以在.css和.js 中使用
二 兼容性
一般的兼容写法
transform:rotate(7deg);
-ms-transform:rotate(7deg); /* IE 9(IE浏览器) */
-moz-transform:rotate(7deg); /* Firefox(火狐浏览器) */
-webkit-transform:rotate(7deg); /* Safari(苹果浏览器) 和 Chrome(谷歌浏览器) */
-o-transform:rotate(7deg); /* Opera(欧朋浏览器) */
支持的浏览器版本
Internet Explorer 10、Firefox、Opera 支持 transform 属性。
Internet Explorer 9 支持替代的 -ms-transform 属性(仅适用于 2D 转换)。
Safari 和 Chrome 支持替代的 -webkit-transform 属性(3D 和 2D 转换)。
Opera 只支持 2D 转换。
caniuse
三 方法及属性 与排列顺序
主要包括以下几种:透视perspective、旋转rotate、扭曲skew、缩放scale和移动translate以及矩阵变形matrix
类型 | 值 |
---|---|
默认值 | transform: none |
继承 | no |
版本 | css3 |
JavaScript 语法 | object.style.transform="rotate(7deg)" |
四 性能(优点)
别人写好的文章,我就直接拿来用了,
前端性能优化--transform与position
CSS3动画卡顿性能优化解决方案
五 纯css实现div旋转功能
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>旋转</title>
<style>
.box {
width: 200px;
height: 200px;
transform-style: preserve-3d;
position: relative;
margin: 20px auto;
font-size: 50px;
color: #fff;
line-height: 200px;
text-align: center;
transform: perspective(800px) rotateX(0deg);
transition: all 2s ease;
}
.box div {
width: 100%;
height: 100%;
position: absolute;
left: 0;
top: 0;
}
.box div:nth-child(1) {
background: pink;
transform: translateZ(100px);
}
.box div:nth-child(2) {
background: #ccc;
transform: translateZ(100px);
}
.box div:nth-child(3) {
background: blue;
transform: translateX(-100px) rotateY(-90deg);
}
.box div:nth-child(4) {
background: green;
transform: translateX(100px) rotateY(90deg);
}
.box div:nth-child(5) {
background: orange;
transform: translateY(-100px) rotateX(90deg);
}
.box div:nth-child(6) {
background: purple;
transform: translateY(100px) rotateX(-90deg);
}
.box:hover {
transform: perspective(800px) rotateX(180deg) rotateY(180deg) translate(60px);
}
.box:hover {
transform: perspective(800px) rotateX(180deg) rotateY(180deg) translate(60px);
}
</style>
</head>
<body>
<div class="box">
<div>后</div>
<div>前</div>
<div>左</div>
<div>右</div>
<div>上</div>
<div>下</div>
</div>
</body>
</html>
五 使用的时候有没有用到什么问题
看这篇文章呐~~~ https://www.jianshu.com/p/53d47af52eaa