之前看到很多人一直都问这个问题,不过当时我没当一回事,因为在 CSS 中要垂直居中,多数是在有高度的情况下,或者容器高度不定的情况下才用,看上去比较舒服,而且实现的方法也不少,不一定要拘泥于和 table 布局一样
不过最近有人问了几个例子,看来对此的需求还不少
现在就把我经验拿出来分享一下,希望大家鼓鼓掌
首先,要有一个概念:凡是 table 布局可以实现的,CSS 一定可以实现
CSS 可以实现的,table 未必能做到
现在来几个例子: 一、单行内容的居中 只考虑单行是最简单的,无论是否给容器固定高度,只要给容器设置 line-height 和 height,并使两值相等,再加上 over-flow: hidden 就可以了
middle-demo-1{ height: 4em; line-height: 4em; overflow: hidden; } 优点: 1
同时支持块级和内联极元素 2
支持所有浏览器 缺点: 1
只能显示一行 2
IE中不支持等的居中 要注意的是: 1
使用相对高度定义你的 height 和 line-height 2
不想毁了你的布局的话,overflow: hidden 一定要 为什么
请比较以下两个例子: