CSS关于垂直居中,大家有没有什么比较好的建议。

题主目前在工作中经常遇到这种问题。
例如:在高度固定的时候如果文本是一行的话,垂直居中,如果两行的话也是垂直居中,当第三行的时候就隐藏(如果有‘...’的话当然最好)。有没有简单而有效的方法?
谢谢,么么哒。

阅读 7.4k
13 个回答

自行百度了许久,找了很多资料
这一篇博客讲的挺详细的
http://www.cnblogs.com/dojo-lzz/p/4419596.html
其中讲了7种方法,flex讲的略简单,flex可以参考可以参考阮一峰的博客
一、语法篇:http://www.ruanyifeng.com/blog/2015/07/flex-grammar.html
二、实例篇:http://www.ruanyifeng.com/blog/2015/07/flex-examples.html


2016.01.31
看到好多小伙伴关注了这个问题,我就写了一篇总结:
sf专栏文章:http://segmentfault.com/a/1190000004394432?_ea=593187

用js计算写top值

使用flex

css垂直居中就那几种方法。
像我怕麻烦的都直接用js来居中。
但最好的还是flex,其次是用talbe居中,然后是position+transform。这三种应该都是可变高度的。

inline-block和绝对居中两种方式是最常用的

新手上路,请多包涵

css3有个技巧:
{ position: relative; top: 50%; transform: translateY(-50%);}

flex 固然好,但是说起 IE 满脸泪

说一个我一直在用的 inline-block 方法

<div class="vMiddle"><i></i><span>一行两行三行四行高度不确定</span></div>
.vMiddle {
    &, i { height: 150px;} // i 和父层高度一样
    i, span { display: inline-block; vertical-align: middle;}
    i { width: 0;}
}
新手上路,请多包涵
1 篇内容引用
推荐问题
宣传栏