1.设置margin:实现水平居中且只能水平居中并且子元素的宽度要小于父元素
2.设置参照父元素的绝对定位 设置left top 为50%(父元素的宽高一半) 实现子元素在父元素中线对齐
设置transform变形函数 将translate值设为-50%(translate百分比是自己的宽高百分比) =>实现水平垂直居中
3.将2中的位移函数变成margin(-自己的宽/2,-自己的高/2) 因为margin的百分比指的是父元素的百分比
注:::当子元素相对定位时 若使用margin竖直方向不能居中 会发生外边距折叠
代码
在这里插入代码片<!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>Document</title>
<style>
.box1{
width: 400px;
height: 400px;
background-color: salmon;
margin: 0 auto;
position: relative;
}
.box2{
width: 200px;
height: 200px;
background-color: seagreen;
margin: 0 auto;
position: absolute;
/* position: relative; */
/* 子元素相对定位下的margin会和父元素发生外边距折叠 */
left: 50%;
top: 50%;
/* transform: translate(-50%,-50%); */
margin-left: -100px;
margin-top: -100px;
}
</style>
</head>
<body>
<div class="box1">
<div class="box2"></div>
</div>
</body>
</html>