打印

[教程] [翻译]像table一样布局div[2]

复制内容到剪贴板
代码:
翻译自:Equal height boxes with CSS part II
原文:http://www.456bereastreet.com/archive/200406/equal_height_boxes_with_css_part_ii/
这个翻译的页面版权所有,授权蓝色。转载请注明出处。
下面是我翻译的内容,是根据我对文章的理解意译的,你就别挑哪里翻译的不对了,我的目的只是传达这个CSS技巧
上一篇的问题就是,这个模型对IE来说等同于垃圾,所以基本只能是做来玩玩而已,没有什么实际的用处,现在我要做的就是,
让它也能在IE下更好的显示,所以我又做了第二个模型

xhtml结构类似第一个模型的只是增加一个新的div给IE
复制内容到剪贴板
代码:
<div class="equal">
    <div class="row">
        <div class="one"></div>
        <div class="two"></div>
        <div class="three"></div>
        <!--[if IE]>
        <div class="ieclearer"></div>
        <![endif]-->
    </div>
</div>
给xhtml增加一个判断,判断是否为IE,然后给IE一个特殊待遇,在IE显示和别的浏览器不同的代码,对于这个判断IE\MAC优先选择
显示其间的内容。

然后在CSS中也增加一个判断,配合xhtml,用浮动对齐(浮动对齐就不用解释了)的方式来实现容器的等高并排放置,但是还是无法真实的实现等高,你可以采用添加背景颜色的视觉错觉来实现视觉上的等高,或者采用别的方法,这里就不进行说明了。下面是CSS中的代码
复制内容到剪贴板
代码:
<!--[if IE]>
    <style type="text/css" media="all">
.equal, .row {
    display:block;
}
.row {
    padding:10px;
}
.row div {
    display:block;
    float:left;
    margin:0;
}
.row .two {
    margin-left:10px;
}
.row .three {
    width:160px;
    float:right;
}
.ieclearer {
    float:none;
    clear:both;
    height:0;
    padding:0;
    font-size: 2px;
    line-height:0;
}
    </style>
<![endif]-->
到此,整个设计真正的完成了,虽然不够完美,对非IE而做出努力显得有点多余,现在要么IE支持第一个模型,要么我们可能会想出更好的方案来。但是这次尝试是有价值的。

[ 本帖最后由 blankzheng 于 2007-4-15 22:34 编辑 ]
本帖最近评分记录
blog Web标准化交流会 WEB标准群:46077068
……相当于给 IE 单独写 CSS
个人认为在IE全面支持 display: table 之前,这种应用还是空谈
有疑问
css如此强大的功能,根本不需要想table一样布局,
任何布局css都能实现。
为什么这里还要把div搞的像table一样布局
有点多事了
很不幸的~
老外就是喜歡專門研究這類你們認為空談與多事的技術~
所以他們能懂得比你們多~(大部分啦)

更不幸的是~我也是那種人~
所以我可以很輕鬆的兼容目前所有的主流瀏覽器~
包括IE5.0那種古董級的老爺瀏覽器~

敞開胸懷吧朋友~
如果願意拋開成見~
你們或大家都會學到更多的~
在網頁設計的領域裡~沒有做不到~只有想不到
3楼和4楼的同学们,你们把去年2月份的帖子翻出来,有什么特别的用意吗?……
改个签名真难啊……

TOP

这篇文章有一定的使用价值
开着法拉利和飞机赛跑

TOP

个人认为还是DIV和TABLE一起用比较好!

TOP

W3C并没说禁止使用TABLE吧
看情况使用
www.5study.net www.websdeveloper.cn

TOP