css3不定宽高水平居中:
在父级元素加3句话,就可以实现子元素水平垂直居中。
justify-content:center;//子元素水平居中 align-items:center;//子元素垂直居中 display:flex;
还有2种方式可以实现水平垂直居中:
第一种实现原理:利用 margin:auto 来实现上下左右等分,但是margin存在很多问题,比如 margin:auto 只能做到左右等分,无法做到上下等分,此时可以把父容器包装成BFC(给父容器增加display:flex就可以触发BFC了)就可解决margin的问题从而实现上下左右等分也就是垂直水平居中了。
<style> .box{ 200px; height:200px display:flex; } .son{ 100px; height:100px; margin:auto } </style> <div class='box'> <div class="son"></div> </div>
第二种,利用定位:
<style> .box{ 200px; height:200px position:relative; } .son{ 100px; height:100px; position:absolute;
left:0;
right:0;
top:0;
bottom:0
} </style> <div class='box'> <div class="son"></div> </div>