|
“Win國天下,欲練CSS之人不在少數,大多不得要領,又或是走火入魔,全為IE所累。故曰:欲練CSS,必先功IE。”
曾經,我也屬于為IE所累的行列,如今見到很多人仍然不愿意對自己的寶貝IE下手,所以決定特異寫篇文章說說此事,以明辨IE到底是寶貝還是累贅。
好了,funny部分結束,按回我的習慣直入正題。之所以說IE不好,是因為IE會誤導了你對CSS模型的理解,讓你以為IE的理解是對的,之后無論如何你都無法用你的IE模型理論去為你那個無法在FF正常顯示的CSS提供fix。更加壞的事情是,即使你僅僅針對IE設計,不考慮其它瀏覽器,由于IE模型絕對可以說是一只讓人難以捉摸其脾氣的怪物,所以你單純為IE設計也會遇到眾多難題,發現很多的效果總是繞來繞去都難以實現。
我們都知道,XHTML+CSS的目標就是實現內容與表現分離,理論上對于任何特定一份內容,我們都可以通過CSS實現任何我們想要的表現形式,或者細致地說是布局形式。雖然現實與這個目標有一定差距,但是CSS已經能夠滿足大多數常見的布局需求,這有CSS Zen Garden為證。然而如果你用的是IE,因為它難以捉摸,所以如果你想用一種簡單優雅的CSS去讓IE能夠實現“任何你想要的布局形式”,那是不可能的,只有復雜繁縟的CSS才能夠在IE上滿足你的需求。我曾經提到過一種理論,“一個人對一個研究方向是否感興趣很可能是完全靠偶然事件決定的,這就好像人第一次打羽毛球,如果你贏了幾盤你就會感興趣,如果你一直都贏不了你就會沒興趣”。IE在需要復雜繁縟的CSS這一點上,就足以令大多數的入門者卻步。你總感覺到不得要領,你自然沒興趣學下去。
舉一個例子說明這個問題,例如你不知道IE有hasLayout這回事,一個元素是否hasLayout對它的布局方式有重大影響,于是你肯定用最簡單的思維去思考CSS,認為不同的CSS規則之間應該是松耦合的。“CSS應該被設計為簡單優雅的”,你肯定會這樣想,沒錯,它確實被設計為這樣,不過IE不是這樣去實現CSS罷了。我們用下面的代碼去證明IE在quirks mode與standards mode之間的區別: it知識庫:欲練 CSS ,必先宮 IE,轉載需保留來源! 鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。<div style="background-color: red; height: 30px">
<div>Hello</div>
<img style="float: left; width: 200px; height: 160px" src="blank.gif" />
<div>Hello</div>
</div>