元素兩端對齊
第一個案例是讓兩個元素分別向左和向右對齊,如果是過去,我一定會用float來實現,但其實用table可以這么做:

* {
box-sizing: border-box;
}
.content {
display: table;
border: 1px solid #06c;
padding: 15px 5px;
max-width: 1000px;
margin: 10px auto;
min-width: 320px;
width: 100%;
}
.box {
width: 100px;
height: 100px;
border: 1px solid #ccc;
text-align: center;
display: inline-block;
font-size: 40px;
line-height: 100px;
}
.right {
text-align: right;
display: table-cell
}
.left {
text-align: left;
display: table-cell
}
<div class="content">
<div class="left">
<div class="box">B</div>
</div>
<div class="right">
<div class="box">A</div>
</div>
</div>
自動平均划分每個小模塊,使其一行顯示
第二個案例我們先看看圖:

遇到上面這種布局,一般會用float來做,或者把每個li設置成display:inline-block;來做,並且都要給他們設置一個寬度,而且最痛苦的是5個li如果你設置width:20%;他們一定會掉下來,如果li都設置成display:table-cell;就不會出現這種情況,即使不設置寬度他們也會在一行顯示,你在加多一行他也不會掉下來,依舊會在一樣顯示。
* {
box-sizing: border-box;
}
.content {
display: table;
border: 1px solid #06c;
padding: 15px 5px;
max-width: 1000px;
margin: 10px auto;
min-width: 320px;
width: 100%;
}
.content ul {
display: table;
width: 100%;
padding: 0;
border-right: 1px solid #ccc;
}
.content ul li {
display: table-cell;
border: 1px solid #ccc;
text-align: center;
height: 100px;
border-right: none;
line-height: 100px;
}
<div class="content">
<ul>
<li>1</li>
<li>2</li>
<li>3</li>
<li>4</li>
<li>5</li>
</ul>
</div>
圖片垂直居中於元素

<div class="content">
<div class="img-box">
<img src="http://jsfiddle.net/img/logo@2x.png" alt="logo" />
</div>
</div>
* {
box-sizing: border-box;
}
.content {
display: table;
border: 1px solid #06c;
padding: 15px 5px;
max-width: 1000px;
margin: 10px auto;
min-width: 320px;
width: 100%;
}
.img-box{
height: 150px;
width: 100px;
border:1px solid red;
display: table-cell;
vertical-align: middle;
text-align: center;
background-color:#4679bd;
}
兩box實現等高對齊

上圖中的左側的box的高度始終跟隨右側的box的高度變化而變化
<div class="content">
<div class="img-box">
<img src="http://jsfiddle.net/img/logo@2x.png" width="70" alt="logo" />
</div>
<div class="text-box">
<span>王尼瑪和陳尼瑪都是年輕有為的騷年,有一天他們相遇了,然后發現都對對方一見鍾情后,所以就愉快的生活在了一起。。。。。王尼瑪和陳尼瑪都是年輕有為的騷年,有一天他們相遇了,然后發現都對對方一見鍾情后,所以就愉快的生活在了一起。。。。。王尼瑪和陳尼瑪都是年輕有為的騷年,有一天他們相遇了,然后發現都對對方一見鍾情后,所以就愉快的生活在了一起。。。。。王尼瑪和陳尼瑪都是年輕有為的騷年,有一天他們相遇了,然后發現都對對方一見鍾情后,所以就愉快的生活在了一起。。。。。王尼瑪和陳尼瑪都是年輕有為的騷年,有一天他們相遇了,然后發現都對對方一見鍾情后,所以就愉快的生活在了一起。。。。。王尼瑪和陳尼瑪都是年輕有為的騷年,有一天他們相遇了,然后發現都對對方一見鍾情后,所以就愉快的生活在了一起。。。。。</span>
</div>
</div>
* {
box-sizing: border-box;
}
.content {
display: table;
border: 1px solid #06c;
padding: 15px 5px;
max-width: 1000px;
margin: 10px auto;
min-width: 320px;
width: 100%;
}
.img-box{
width: 100px;
border:1px solid red;
display: table-cell;
vertical-align: middle;
text-align: center;
background-color:#4679bd;
}
.text-box{
margin-left: 20px;
border: 1px solid #ddd;
padding: 10px;
}
上面的案例不對右側的box設置display:table-cell,只對左側設置,所以就會出現左側跟隨右側高度變化而變化。
如果要實現不管兩個box哪個高度產生變化另一個就跟隨,只需要把右側的box也設置成display:table-cell就可以實現了。
彈性、響應式布局

<div class="content">
<div class="left-box">
<img src="https://www.google.com.hk/images/srpr/logo11w.png" width="70" alt="logo" />
</div>
<div class="right-box">
<span>王尼瑪和陳尼瑪都是年輕有為的騷年,有一天他們相遇了,然后發現都對對方一見鍾情后,所以就愉快的生活在了一起。。。。。王尼瑪和陳尼瑪都是年輕有為的騷年,有一天他們相遇了,然后發現都對對方一見鍾情后,所以就愉快的生活在了一起。。。。。王尼瑪和陳尼瑪都是年輕有為的騷年,有一天他們相遇了,然后發現都對對方一見鍾情后,所以就愉快的生活在了一起。。。。。王尼瑪和陳尼瑪都是年輕有為的騷年,有一天他們相遇了,然后發現都對對方一見鍾情后,所以就愉快的生活在了一起。。。。。王尼瑪和陳尼瑪都是年輕有為的騷年,有一天他們相遇了,然后發現都對對方一見鍾情后,所以就愉快的生活在了一起。。。。。王尼瑪和陳尼瑪都是年輕有為的騷年,有一天他們相遇了,然后發現都對對方一見鍾情后,所以就愉快的生活在了一起。。。。。王尼瑪和陳尼瑪都是年輕有為的騷年,有一天他們相遇了,然后發現都對對方一見鍾情后,所以就愉快的生活在了一起。。。。。王尼瑪和陳尼瑪都是年輕有為的騷年,有一天他們相遇了,然后發現都對對方一見鍾情后,所以就愉快的生活在了一起。。。。。王尼瑪和陳尼瑪都是年輕有為的騷年,有一天他們相遇了,然后發現都對對方一見鍾情后,所以就愉快的生活在了一起。。。。。王尼瑪和陳尼瑪都是年輕有為的騷年,有一天他們相遇了,然后發現都對對方一見鍾情后,所以就愉快的生活在了一起。。。。。王尼瑪和陳尼瑪都是年輕有為的騷年,有一天他們相遇了,然后發現都對對方一見鍾情后,所以就愉快的生活在了一起。。。。。</span>
</div>
</div>
* {
box-sizing: border-box;
}
.content {
display: table;
border: 1px solid #06c;
padding: 15px 5px;
max-width: 1000px;
margin: 10px auto;
min-width: 320px;
width: 100%;
}
.left-box {
float:left;
margin-right: 10px;
padding-top:5px;
}
.right-box {
display: table-cell;
padding: 10px;
border: 1px solid #ccc;
margin-right: 10px;
vertical-align: top;
}
移動端布局因為有display:box這等屬性,所以table-cell相對就排不上什么大用場,不過在移動端你要用table-cell也不是不可以,根據自己對屬性的理解去使用就可以了。
