css 实现div 内容垂直居中

一、单行内容的居中
只考虑单行是最简单的,无论是否给容器固定高度,只要给容器设置 line-heightheight,并使两值相等,再加上 over-flow: hidden 就可以了:
.middle-demo-1{
   height: 4em;
   line-height: 4em;
   overflow: hidden;
}

优点:
1. 同时支持块级和内联极元素
2. 支持所有浏览器
缺点:
1. 只能显示一行
2. IE6中不支持<img>等的居中
要注意的是:
1. 使用相对高度定义你的 height 和 line-height
2. 不想毁了你的布局的话,overflow: hidden 一定要

 如果还想让div里的文字水平居中,加上“text-align:center;”即可;代码如下:

      说明:如果在父级元素定义text-align:center;这个的意思就是在父级元素内的内容居中;对于IE这样设定就已经可以了。但在mozilla中不能居中。解决办法就是在子元素定义时候设定时再加上“margin-right:auto; margin-left:auto;”。但如果文档的doctype 都采用 xhtml Transitional 模式的话,都可采用后者就行。

二、多行内容居中,且容器高度可变

也很简单,给出一致的 padding-bottom 和 padding-top 就行

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

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

三、如何使图片在DIV中垂直居中,
可以用背景的方法。如下:
<div id="loading" style="border:1px solid #FFD47F;width:80px;height:40px;text-align:center;background:url(ajax-loader.gif) no-repeat center;">
</div>
     关键就是最后的center,这个参数定义图片的位置。还可以写成“top  left”(左上角)或者"bottom right"等,也可以直接写数值"50 30"。

posted @ 2009-08-19 14:05  code_flyer  阅读(405)  评论(0编辑  收藏  举报