div是个容器,一个Box中由很多行很多元素组成,vertical-align只作用于在同一行内的元素,它的垂直并不是相对于整个Box而言的。表格的单元格相当于一行,所以就能垂直居中
对于单行文本:垂直居中中的方法比较简单,可能设line-hight与div 的高度一样就行了<div style="hight:100px; line-hight:100px; overflow: hidden;">即可
对于多行文本,比较麻烦:可以参考一下这个
代码如下:
<div class="demo" id="outerbox">
<div >
<p>对于div中文字可以使其垂直居中,我要兼容IE和firefox!
</p>
</div>
</div>
css文件如下:
div.demo{width: 800px;margin: 12px auto;border: 1px solid #1987df;color: inherit;background: #CEE7FF}
div#outerbox{height: 300px;position: relative;display:table}
div#outerbox div{position: absolute;top: 50%;left: 0}
div#outerbox p{position: relative;top: -50%;margin: 24px;text-indent: 0; font-size:14px;}
div#outerbox>div{display:table-cell;vertical-align:middle;position:static}
这个你可以参考一下,新建一个css文件,把上面的样式copy进去,再在html文件里加入引用就ok了!
补充一点:在IE6.0和Mozilla firefox浏览器中垂直居中测试成功