CSS实现DIV完美垂直居中(支持多浏览器)

作者:ruxpinsp1 来源:蓝色理想 时间:2007-08-13 09:21:00 

之前看到很多人一直都问CSS 中DIV垂直居中的问题,看来对此的需求还不少。现在就把我经验拿出来分享一下,希望大家鼓鼓掌。因为在 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 一定要
为什么?
请比较以下两个例子:

[提示:你可先修改部分代码,再按运行]  

上一个高度是用的绝对单位px,并且没有隐藏溢出,下一个高度用的单位是相对单位em,并且隐藏了溢出。如果你的浏览器支持放大字体,那么尽情地放大字体,看看会出现什么效果。

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

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

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

标签:div居中,css居中,垂直居中
0
投稿

猜你喜欢

  • mssql 大小写区分方法

    2008-12-29 14:08:00
  • MYSQL--自身字段约束级联删除

    2010-11-02 11:42:00
  • 深入MySQL数据库的索引

    2009-02-26 15:27:00
  • [奇招] JS暴虐查找算法

    2008-07-06 21:17:00
  • 整理及优化CSS代码的七个原则[译]

    2009-04-23 12:35:00
  • 将表数据生成SQL脚本的存储过程和工具

    2009-01-08 15:24:00
  • 关于select元素的两个小问题

    2008-12-25 13:41:00
  • Asp 返回引用类型函数代码

    2011-03-10 10:44:00
  • Dreamweaver打造多彩文字链接

    2007-11-11 18:59:00
  • Oracle 9i 数据库异常关闭后的启动

    2010-07-20 12:49:00
  • XML编程实例: ASP+XML打造留言本

    2008-10-25 16:35:00
  • optgroup、sub、sup和bdo标签

    2009-07-26 18:39:00
  • 使用Javascript动态增加,删除表格

    2008-02-03 19:15:00
  • 如何从数据库断开recordset,提高运行速度?

    2009-11-15 20:01:00
  • ASP中模拟PHP的关联数组

    2009-12-25 16:31:00
  • 浅析DW4中的站点管理

    2007-02-03 11:40:00
  • SQL学习笔记一SQL基础知识

    2011-09-30 11:24:33
  • JavaScript的replace方法与正则表达式结合应用讲解

    2008-03-06 21:37:00
  • javascript 动态插入技术

    2009-12-14 20:50:00
  • MySQL数据库常见的出错代码及出错信息

    2008-05-27 12:29:00
  • asp之家 网络编程 m.aspxhome.com