<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>变形</title>
<style>
body {
border: 1px solid #f00;
perspective: 800px;
}
.box1 {
width: 100px;
height: 100px;
background-color: #bfc;
margin: 0 auto;
margin-top: 50px;
}
.box1:hover {
transform: translateY(-5px);
box-shadow: 0 2px 5px rgba(0, 0, 0, .3);
}
.box2 {
width: 100px;
height: 100px;
background-color: #a10;
margin: 0 auto;
transition: 2s;
}
body:hover .box2 {
/* transform: translateZ(10px); */
transform: rotateY(180deg) translateZ(100px);
}
.box3 {
position: absolute;
left: 50%;
top: 50%;
transform: translate(-50%);
background-color: #aa8;
}
.box4 {
width: 100px;
height: 100px;
background-color: #a19;
margin: 100px auto;
transition: 2s;
overflow: hidden;
}
.box4:hover {
transform: scale(1.2);
}
</style>
</head>
<body>
<div class="box1"></div>
<div class="box2"></div>
<span class="box3">abcvv</span>
<div class="box4"></div>
</body>
</html>
变形:
通过css来改变元素的形状或者位置,不会影响到页面布局;transform设置元素变形效果;
- 平移:translatex,y,z();百分比是相对于自身来说的;
- z轴平移:调整元素和人眼之间的距离
,是立体效果,近大远小,但网页不支持透视,要设置网页的视距perspective,一般600-1200px左右;
旋转:
指定角度;transform来设置;
- rotatex,y,z(0-360deg),1turn表示一圈;
- backface-visibility:visible默认显示,hidden隐藏;背面是否显示;
- 旋转时的中心
- opacity:0-1;元素透明;
- transform-style:preserve-3d;设置3d效果;
缩放:
transform进行设置,对元素进行缩放
- scalex,y();
- transform-origin:偏移量 偏移量;改变变形的原先(转轴中心点);