5

方法一:把一些 div 的显示方式设置为表格,因此我们可以使用表格的 vertical-align属性。
结构效果如下:
http://jsfiddle.net/chic/4uduzb3t/1/
优点:不用受内容高度的限制,简单实现垂直居中;
缺点:不兼容ie6,7

方法二:这个方法使用绝对定位的 div,把它的 top 设置为 50%,margin-top 设置为负的 content 高度。这意味着对象必须在 CSS 中指定固定的高度。
结构效果如下:
http://jsfiddle.net/chic/4uduzb3t/2/

优点:兼容性好
缺点:必须知道内容盒子的高度才可以,有了这点限制;

方法三:这个方法和方法二的原理是一样的。废话不多说看代码
http://jsfiddle.net/chic/4uduzb3t/4/

优缺点和法二一样,缺点嘛多了个额外的标签;

方法四:这个方法使用了一个 position:absolute,有固定宽度和高度的 div。这个 div 被设置为 top:0; bottom:0;。但是因为它有固定高度,其实并不能和上下都间距为 0,因此 margin:auto; 会使它居中。使用 margin:auto;使块级元素垂直居中是很简单的。
结构效果如下:
http://jsfiddle.net/chic/4uduzb3t/3/

优点:非常简单
缺点:不兼容ie6,7

方法五:这个方法只能将单行文本置中。只需要简单地把 line-height 设置为那个对象的 height 值就可以使文本居中了。这个就不用实例了,您你看就明白;

方法六:这个方法的原理是利用元素的vertical-align,区别于方法一的是不限制在table元素中(用于图片的居中不错);
结构效果如下:
https://jsfiddle.net/chic/mkd9ufmk/10/

优点:不用受内容高度的限制,兼容性好;
缺点:垂直居中的对象只限在行内元素范围


chic
1.1k 声望50 粉丝