原文发布时间为:2009-07-26 —— 来源于本人的百度文章 [由搬家工具导入]

CSS 垂直居中2009-07-24 09:09 前看到很多人一直都问这个问题,不过当时我没当一回事,因为在 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中不支持<img>等的居中
要注意的是:
1. 使用相对高度定义你的 height 和 line-height
2. 不想毁了你的布局的话,overflow: hidden 一定要

二、多行内容居中,且容器高度可变
也很简单,给出一致的 padding-bottom 和 padding-top 就行

.middle-demo-2{
padding-top: 24px;
padding-bottom: 24px;
}

优点:
1. 同时支持块级和内联极元素
2. 支持非文本内容
3. 支持所有浏览器
缺点:
容器不能固定高度

三、把容器当作表格单元
CSS 提供一系列diplay属性值,包括 display: table, display: table-row, display: table-cell 等,能把元素当作表格单元来显示。这是再加上 vertical-align: middle, 就和表格中的 valign="center" 一样了。

.middle-demo-3{
display: table-cell;
height: 300px;
vertical-align: middle;
}

可惜IE不支持这些属性,不过在其他浏览器上显示效果非常完美。
要注意的是:和一个合法的<td>元素必须在<table>里一样,display: table-cell 元素必须作为 display: table 的元素的子孙出现。

优点:
不用说了吧,就是表格,效果和表格一模一样
缺点:
IE下无效

最新文章

  1. UE3:SkeletalMesh的绘制流程
  2. Oracle修改时间报:ORA-01830: 日期格式图片在转换整个输入字符串之前结束的解决办法
  3. ZOJ-2365 Strong Defence 无公共边割边集
  4. SpringMVC使用@ResponseBody时返回json的日期格式、@DatetimeFormat使用注意
  5. 【Android代码片段之八】监听Android屏幕是否锁屏
  6. AESEncrypter加密算法代码示例
  7. PHP图标类库 - JpGraph使用详解
  8. SPOJ 416 - Divisibility by 15(贪心)
  9. HDU 5793 - A Boring Question
  10. Cube(规律)
  11. Let’s do this!新手程序员的入门指南(转)
  12. Hdu 5256 系列转换
  13. 用PHP删除ftp下载导致的文件空行
  14. HDU - 3002 King of Destruction(最小割)
  15. Page13:跟踪问题、最优控制[Linear System Theory]
  16. httpClient 深入浅出~
  17. DELPHI获取宽带IP
  18. Kangax 的 ES7 兼容性表格
  19. python之路----TCP与UDP
  20. [BZOJ1877][SDOI2009]SuperGCD

热门文章

  1. gitlab文件夹的权限不要随便给777
  2. Mysql数据库的权限、索引基本操作
  3. Windows CMD命令 查看无线密码
  4. proc的妙用
  5. Codeforces Round #435 (Div. 2) B (二分图) C(构造)
  6. 洛谷 P2205 [USACO13JAN]画栅栏
  7. python数据排序
  8. sql优化系列2
  9. EXCEL合并单元格快捷键暨WORD+EXCEL自定义快捷键
  10. Python3.0-3.6的版本变化