一、问题描述: 当高度固定或不固定时,单行或多行文本难以实现垂直居中;
二、解决方法:
1、使用line-height属性,将line-height设置与元素高度等高。
局限性:只适用于单行文本,局限性大。
代码:
.box {
height: 100px;
line-height: 100px;
white-space: nowrap;
}
2.padding:设置相等的上下padding值。
局限性:有高度限制时不能垂直居中。
代码:
.box{
padding-top: 30px;
padding-bottom: 30px;
}
3.绝对定位居中:top:0; bottom:0; left:0; right:0; margin:auto;
元素在过度受限情况下,将margin设置为auto,浏览器会重算margin的值。(过度受限指的是同时设置top/bottom与height或者left/right与width。)
优点:支持响应式,只有这种方法在resize之后仍然垂直居中
缺点:使用绝对定位时元素必须有明确高度,没有显式设置overflow时,内容超过元素高度时会溢出,没有滚动条。IE浏览器不支持
代码:
.box{/*display:none;*/
position:absolute;
width:200px;
height