思路一:使用flex
【1】在伸缩容器上使用主轴对齐justify-content和侧轴对齐align-items
<style>
.father {
display: flex;
height: 200px;
width: 300px;
justify-content: center;
align-items: center;
background-color: blue;
}
</style>
<body>
<div class="father ">
<div class="son">
这是一段测试文字
</div>
</div>
</body>
思路二:magin:atuo配合绝对定位实现水平和垂直方向居中
.father {
width: 300px;
height: 150px;
background-color: #f0f3f9;
position: relative;
}
.son {
position: absolute;
top: 0;
right: 0;
bottom: 0;
left: 0;
width: 200px;
height: 100px;
background-color: #cd0000;
margin: auto;
}
<div class="father">
<div class="son"></div>
</div>
思路三:在伸缩项目上使用margin:auto
.father {
display: flex;
width: 300px;
height: 150px;
background-color: #f0f3f9;
}
.son {
margin: auto;
background-color: #cd0000;
}
<div class="father">
<div class="son">测试文字</div>
</div>
思路四:利用绝对定位元素的盒模型特性,在偏移属性为确定值的基础上,设置margin:auto
.father {
position: relative;
width: 200px;
height: 100px;
background-color: bLue;
}
.son {
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
height: 50px;
width: 80px;
margin: auto;
background-color: red;
}
<div class="father">
<div class="son"></div>
</div>
思路五:利用绝对定位元素的偏移属性和translate()函数的自身偏移达到水平垂直居中的效果
注意:IE9不支持
.father {
position: relative;
width: 200px;
height: 100px;
background-color: bLue;
}
.son {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
background-color: red;
}
<div class="father">
<div class="son">测试文字</div>
</div>