垂直居中布局:就是指当前元素在父级元素容器中,垂直方向是居中显示的
<div class="parent"> <div class="child">垂直居中</div> </div>
方案一:table-cell + vertical-align属性配合使用
.parent{ width:200px; heigth:600px; background:#ccc; /* display属性: table:设置当前元素为<table>元素 table-cell:设置当前元素为<td>元素(单元格) */ display:teble-cell; /* vertical-align属性:用于设置文本内容的垂直方向对齐方式 top:顶部对齐 middle:居中对齐 bottom:底部对齐 */ vertical-align: middle; } .child{ width:200px; height:200px; background:#c9394a; }
优点:浏览器兼容性比较好
缺点:vertical-align属性具有继承性,导致父级元素的文本也是居中显示的
方案二:absolute + transform属性配合使用
.parent{ width:200px; heigth:600px; background:#ccc; position:relative; } .child{ width:200px; height:200px; background:#c9394a; position:absolute; top:50%; transform:translateY(-50%); /*translate 平移*/ }
优点:
父级元素是否脱离文档流,不影响子级元素垂直居中效果
缺点:
transform属性是css3中新增属性,浏览器支持情况不好
Believe in yourself