变形:指的是通过CSS来改变元素的形状和位置
变形不会影响页面的布局
transform用来设置元素的变形效果
平移:
translateX() 沿着X轴方向平移
translateY() 沿着Y轴方向平移
translateZ() 沿着Z轴方向平移
平移元素- 百分比:相对于自身进行计算的
比如自身的宽度、高度
移动元素自己本身,而不会影响其他元素
Demo:
<!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>
body{
background-color:rgb(238, 228, 228);
}
.box1{
width:200px;
height:200px;
background-color: #bfa;
margin:0 auto;
margin-top: 200px;
/* transform: translateY(100px);*/
transform:translateX(100%);
}
/* .box2{
width:200px;
height:200px;
background-color: orange;
margin:0 auto;
} */
.box3{
/* width: 200px;
height:200px; */
background-color:orange;
position: absolute;
/*这种居中方式,只适合大小确定的元素*/
/* top:0;
bottom:0;
left:0;
right:0;
margin: 0 auto; */
left:50%;
top:50%;
/*多个变形之间用空格隔开*/
transform: translateX(-50%) translateY(-50%);
}
.box4,.box5{
width:200px;
height:300px;
background-color: white;
float: left;
margin:0 10px;
margin-bottom:200px;
/*添加过渡效果
一个元素只能有一个 transition生效
后面的会覆盖掉前面的
*/
transition:all .3s;
}
/*变形+阴影 */
.box4:hover,.box5:hover{
transform:translateY(-4px);
box-shadow:0 0 10px rgba(0, 0, 0, .3);
}
</style>
</head>
<body>
<div class="box1"></div>
<div class="box2"></div>
<div class="box3">aaa</div>
<div class="box4"></div>
<div class="box5"></div>
</body>
</html>