distable:table-cell

我们在使用表格的时候,会看到表格中的单元格一般具有怎么样的特点呢?文字的垂直居中对齐,关联伸缩等等,这些都是表格单元格具有的特点。而display:table-cell可以让元素具有这些特点!

这个属性可以使得我们在布局时候实现下面三个功能:

(1)图片垂直居中于元素(在其他随笔中有记录,略)

(2)等高布局

同一行的单元格td元素高度是相等的,因此,table-cell也是具备这个特点。

eg:

<!doctype html>
<html>
<head>
<title></title>
<style type="text/css">
#wrapper{display:table-row;}
#img-box{
display:table-cell;                 
width:150px;
vertical-align:middle;            /*垂直居中*/
text-align:center;                 /*水平居中*/
border:1px solid red;
}
#text-box{
display:table-cell;
width:200px;
border:1px solid red;
border-left:none;
padding:10px;
}
</style>
</head>
<body>
<div id="wrapper">
<div id="img-box"><img src="images/haizeil.png" alt=""/></div>
<div id="text-box"><p>这是一段文字</p></div>
</div>
</body>
</html>

  在这个例子中,我们在左右两个盒子中都没有加上高度,但是两个盒子的高度都刚好相等,这就是自适应等高布局。高度由两者间最大的高度而决定

 

(3)自动平均划分元素,并且在一行显示

要让无序列表横向布局,我们通常会改变它的display属性为inline-block元素或是将其定义为浮动元素。但是我们可以利用display:table-cell来解决,并且还能自动平均划分元素。

语法:

#father{display:table;}
#son{display:table-cell;}

  只要给父元素定义宽度,就会自动划分子元素们

 

补充:去除inline-block元素间距

inline-block元素之间是有间距,这会影响我们的布局,可以使用font-size:0;来去除这个情况

语法:

#father{font-size:0;}

  

 

posted @ 2017-02-22 15:47  某个润滑君  阅读(552)  评论(0编辑  收藏  举报