垂直居中包括单行文本居中、单元格(td)内容居中、块级元素居中。由于单元格的display属性为table-cell,且浏览器默认vertical-align:middle,所以就是默认垂直居中,不做考虑。要注意的就是vertical-align属性的含义是设置内联元素在行框(一行)内的垂直对齐方式,对于display:table-cell的元素也适用,但是IE8+才支持display:table-cell设置,于是就有了各种跨浏览器垂直对齐的方法。

此种情况最简单,使用line-height来控制元素的高度即可,兼容IE6+及其他现代浏览器。

而此种方法对于display为inline或inline-block的元素也适用,只不过元素要加上vertical-align:middle,而且不兼容IE6。

块级元素的垂直对齐方法有很多种,但有些方法必须要求知道和统一块级元素的高度,有些不需要但是跨浏览器支持不好,最后还得需要针对个别浏览器(IE6、7)单独设置。

元素高度预知:

兼容IE6-7,利用条件注释单独设置,而且要添加一个多余的div标签,下面针对IE6-7的代码对于其他现代浏览器并不适用。