css 内容垂直居中

 
1   设置display:table-cell属性(ie不支持该属性)
HTML:
<div id="container"> 
    <div id="content">content</div> 
</div>
 
CSS:

            #container { 

            height: 300px; 
            display: table;/*让元素以表格形式渲染*/ 
        } 

             #content { 

            display:table-cell;/*让元素以表格的单元素格形式渲染 非IE的主流浏览器识别的垂直居中的方法*/ 
            vertical-align: middle;/*使用元素的垂直对齐  非IE的主流浏览器识别的垂直居中的方法*/ 
        }         
 
 
 
 
 
 
 
 
2 兼容ie的方法
标准浏览器如Mozilla, Opera, Safari等.,可将父级元素显示方式设定为TABLE(display: table;) ,内部子元素定为table-cell (display: table-cell),通过vertical-align特性使其垂直居中,但非标准浏览器是不支持的。 
那么为了解决这种方法在IE6-7的兼容,需要额外增加一个div,并使用hack,下面我们一起来看看其解决办法。
非标准浏览器只能在子元素里设距顶部50%,里面再套个元素距顶部-50% 来抵消。

HTML:
    <div class="table"> 
        <div class="tableCell"> 
            <div class="content">content</div> 
        </div> 
    </div>

CSS:
    .table { 
        height: 300px;/*高度值不能少*/ 
        width: 300px;/*宽度值不能少*/ 
        display: table; 
        position: relative; float:left; 
}           

    .tableCell { 
        display: table-cell; 
        vertical-align: middle; 
        text-align: center;          
         padding: 10px;
         *position: absolute; 
        *top: 50%; 
        *left: 50%; 
} 
    .content { 
        *position:relative; 
        *top: -50%; 
        *left: -50%; 
}

posted on 2013-11-21 21:24  小刈  阅读(165)  评论(0编辑  收藏  举报

导航