[轉自blueidea]像table一樣佈局divII

楊俊明發表於2007-12-26

翻譯自: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顯示和別的瀏覽器不同的程式碼,對於這個判斷IEMAC優先選擇顯示其間的內容。

然後在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支援第一個模型,要麼我們可能會想出更好的方案來。但是這次嘗試是有價值的。

經典論壇討論
http://bbs.blueidea.com/thread-2459988-1-1.html


相關文章