像table一样布局div - 我爱贝贝 - 金东浩官方网站 - welcome to old.bbmy.net

像table一样布局div [金东浩官方网站版权所有]

2006年12月31日 | Category: » | by: 贝爸 | 本文包含金东浩像table一样布局div照片

翻译自:Equal height boxes with CSS

原文:http://www.456bereastreet.com/archive/200405/equal_height_boxes_with_css/

下面是我翻译的内容,是根据我对文章的理解意译的,你就别挑哪里翻译的不对了,我的目的只是传达这个CSS技巧

许多网页设计师都喜欢,将两个或者多个容器等高的并排放置,并在里面展示每个容器的内容,就象经典表格布局中的单元格控制几个栏目的位置,也喜欢容器的内容居中或顶部对齐显示。
但是你又不喜欢用table来实现他,那怎么办呢?实现的方法很多,有根据视觉错觉实现的,有用JS控制使高度相等的,还有采用容器溢出部分隐藏和列的负底边界和正的内补丁相结合的方法来解决列高度相同的问题。
其实有个简单的方法,使用display:table, display:table-row and display:table-cell 就可以实现,而且高度小的容器会自适应那些高度相对较高的,但是IE不支持这个属性,我们先不用去责备IE,相信以后会有所改善的。这里我制作了一个模型。

先看看xhtml的结构:

<div class="equal">
  <div class="row">
      <div class="one"></div>
      <div class="two"></div>
      <div class="three"></div>
  </div>
</div>


很简单不用解释就能看懂,但是这里给出一个table的结构,是不是很相似

<table>
<tr>
<td></td>
<td></td>
<td></td>
</tr>
</table>


下来是css:

.equal {
display:table;
border-collapse:separate;
}
.row {
display:table-row;
}
.row div {
display:table-cell;
}
.row .one {
width:200px;
}
.row .two {
width:200px;
}
.row .three {
}


解释:

1.dispaly:table;让层.equal作为块级元素的表格table显示,也就是将他作为一个表格
2.border-collapse:separate;边框独立,就像表格没有合并单元格以前
3.display:table-row;将.row作为表格行tr显示
4.display:table-cell;将.row的下级div作为表格单元格td显示
5.然后定义宽度

这里还使用了 border-spacing:10px;来区别几个盒子,正如上面所陈述的,IE下不能正常显示,但是在:Mozilla 1.6,  Opera 7.50, Safari 1.2.2, Firefox 0.8, OmniWeb 5b, Camino 0.8b, and Netscape 7.1 经过测试均可以完美显示.

至此整个任务就结束了,请在非IE浏览器下 预览模型效果

来自:蓝色理想

本文来自 我爱贝贝[www.bbmy.net]-金东浩官方网站,如若转载注明出处。


金东浩博客随机日志
金东浩博客之不满意就发彪
不满意就发彪
金东浩博客之幼儿园的玩具车
幼儿园的玩具车
金东浩博客之再跟表哥游杏花公园
再跟表哥游杏花公
金东浩博客之贝妈的艺术照
贝妈的艺术照
金东浩博客之大头照
大头照
金东浩博客之演唱小燕子
演唱小燕子
金东浩博客之外婆家玩耍
外婆家玩耍
金东浩博客之夏装登场
夏装登场
金东浩博客之轨道火车
轨道火车
金东浩博客之小贝说唱(rap造型)
小贝说唱(rap
金东浩博客之杏花公园游船
杏花公园游船
金东浩博客之游公园坐托马斯小火车
游公园坐托马斯小
金东浩博客之端午节
端午节
金东浩博客之望远镜
望远镜
金东浩博客之小自行车
小自行车
金东浩博客之泡泡枪
泡泡枪
金东浩博客之受伤
受伤
金东浩博客之背唐诗
背唐诗

金东浩日记Tags:
金东浩日记评论: 0 | 金东浩日记引用: 0 | 金东浩日记阅读: 2222
发表评论
昵称 [注册]        网址
密码 游客无需密码     电邮
打开HTML 打开UBB 打开表情 隐藏 记住我