对要素进行横向排列的时候,一般都会使用float, display:inline-block等方法。我们使用table-cell也可以简单的实现,
利用table-cell来制作横向排列的好处我觉得有三点(呵呵呵,有些牵强)
1.float以及 clear:both都可以省略了;
2.纵向居中也可以了;
3.就算使用border和padding也不会顶出边框了。
clear:both可以使用display:inline-block替换,display:table-cell最主要的是纵向居中。
还有就是在响应式设计的时候,padding和border不会导致样式顶出边框的问题。再也不需要计算宽度和使用box-sizing了。
table-cell制作的横向排列
首先介绍一下table-cell的基本写法
例,我们制作一个,一般网站中都会出现的左图右文的样式
CSS部分:
- .box{width:60%; margin:60px auto 0; padding:20px; background:#f5f5f5;}
- .content{display:table-cell; *display:inline-block;}
HTML部分:
- <div class="box f9 fix">
- <a href="#prettyGirl" class="l mr10"><img border="0" src="http://image.zhangxinxu.com/image/study/s/s128/mm2.jpg" /></a>
- <div class="content">
- <p><a href="#prettyGirl">大美女一枚</a> 来自上海</p>
- <p class="mt5">签名:想找个保鲜盒把你给我的那些感动都装起来。当你让我伤心的时候就拿出来回味一下。</p>
- <p class="mt5">微博:坐在办公室,只听轰隆隆几声巨响,晴天也能打雷吗?原来街对面的芭莎咖啡厅被炸成了两截。这定点爆破也太失败了,也不清下场,把路过的汽车震得灰头土脸,愣在路中央不知如何是好。其次,房子只炸了一半,另一半屹立不倒,是乍药太水还是房子质量太好?</p>
- </div>
- </div>