一、总结
一句话总结:
方式一:绝对定位+margin: auto;:子元素绝对定位,并且偏移全为0,margin设置为auto
方式二:绝对定位+margin自身负偏移:子元素绝对定位且左(left)上(top)偏移50%,再margin负偏移左(left)上(top)自身的一半
方式三:绝对定位+transform:translate 平移方式:子元素绝对定位且左(left)上(top)偏移50%,使用transform:translate实现自身左上偏移50%
方式四:弹性盒子:设置父元素为弹性盒子,并且设置主轴对齐方式(justify-content)和侧轴对齐方式(align-items)都为center
1、实现元素水平垂直居中 方式一:绝对定位+margin: auto;?
子元素绝对定位,并且偏移全为0,margin设置为auto
.parent_box{
width: 400px;
height: 400px;
background-color: lightseagreen;
position: relative;
}
.child_box{
width: 200px;
height: 200px;
background-color: red;
position: absolute;
left: 0;
right: 0;
top: 0;
bottom: 0;
margin: auto;
}
2、实现元素水平垂直居中 方式二:绝对定位+margin自身负偏移?
子元素绝对定位且左(left)上(top)偏移50%,再margin负偏移左(left)上(top)自身的一半
.parent_box{
width: 400px;
height: 400px;
background-color: lightseagreen;
position: relative;
}
.child_box{
width: 200px;
height: 200px;
background-color: red;
position: absolute;
left: 50%;
top: 50%;
margin-left: -100px;
margin-top: -100px;
}
3、实现元素水平垂直居中 方式三:绝对定位+transform:translate 平移方式?
子元素绝对定位且左(left)上(top)偏移50%,使用transform:translate实现自身左上偏移50%
.parent_box{
width: 400px;
height: 400px;
background-color: lightseagreen;
position: relative;
}
.child_box{
width: 200px;
height: 200px;
background-color: red;
position: absolute;
left: 50%;
top: 50%;
transform: translate(-50%,-50%);
}
4、实现元素水平垂直居中 方式四:弹性盒子?
设置父元素为弹性盒子,并且设置主轴对齐方式(justify-content)和侧轴对齐方式(align-items)都为center
.parent_box{
width: 400px;
height: 400px;
background-color: lightseagreen;
display: flex;
justify-content: center;
align-items: center;
}
.child_box{
width: 200px;
height: 200px;
background-color: red;
}
二、实现元素水平垂直居中
博客对应课程的视频位置:
方式一:绝对定位+margin: auto;:
子元素绝对定位,并且偏移全为0,margin设置为auto
1 .parent_box{
2 width: 400px;
3 height: 400px;
4 background-color: lightseagreen;
5 position: relative;
6 }
7 .child_box{
8 width: 200px;
9 height: 200px;
10 background-color: red;
11 position: absolute;
12 left: 0;
13 right: 0;
14 top: 0;
15 bottom: 0;
16 margin: auto;
17 }
方式二:绝对定位+margin自身负偏移:
子元素绝对定位且左(left)上(top)偏移50%,再margin自身负偏移左(left)上(top)自身的一半
1 .parent_box{
2 width: 400px;
3 height: 400px;
4 background-color: lightseagreen;
5 position: relative;
6 }
7 .child_box{
8 width: 200px;
9 height: 200px;
10 background-color: red;
11 position: absolute;
12 left: 50%;
13 top: 50%;
14 margin-left: -100px;
15 margin-top: -100px;
16 }
方式三:绝对定位+transform:translate 平移方式:
子元素绝对定位且左(left)上(top)偏移50%,使用transform:translate实现自身左上偏移50%
1 .parent_box{
2 width: 400px;
3 height: 400px;
4 background-color: lightseagreen;
5 position: relative;
6 }
7 .child_box{
8 width: 200px;
9 height: 200px;
10 background-color: red;
11 position: absolute;
12 left: 50%;
13 top: 50%;
14 transform: translate(-50%,-50%);
15 }
方式四:弹性盒子:
设置父元素为弹性盒子,并且设置主轴对齐方式(justify-content)和侧轴对齐方式(align-items)都为center
1 .parent_box{
2 width: 400px;
3 height: 400px;
4 background-color: lightseagreen;
5 display: flex;
6 justify-content: center;
7 align-items: center;
8 }
9 .child_box{
10 width: 200px;
11 height: 200px;
12 background-color: red;
13 }