2010-12-02 46 views
0

我很好奇這個例子一塊CSS的效率:瀏覽器是否解釋/執​​行他們認爲是空的css標籤? (即IE瀏覽器黑客)

ul, a, span, p, li { *zoom:1; } 

請記住,這是純粹的理論如此CSS黑客的優點或缺陷是沒有那麼多的興趣。

我的問題是 - 什麼做的比IE6 &其他7千萬的瀏覽器:

  1. 外觀相匹配頁面中所有的選擇,然後意識到它是空的,在其上不採取行動? (可怕的效率低下)
  2. 認識到它是空的並且不會對選擇器起作用(相當有效)
  3. 以上都不是。

任何想法都會大受歡迎。

乾杯, 廣告。

回答

1

我不知道。 :)它可能取決於瀏覽器,儘管它們都在儘可能地優化速度。我想他們會想到這個。

但是,既然你永遠無法確定,我會建議把IE hack放在一個單獨的css文件中,並使用HTML中的條件註釋來有條件地包含這些css文件。

但是,當我這樣做的時候,我認爲你應該爲這些文件提供一個'Expires'頭文件,使它們能夠被緩存更長的時間(比如一天?)。當你沒有提供這些頭文件時,IE瀏覽器會比大多數其他瀏覽器更快地使緩存文件失效,當訪問者瀏覽你的網站的多個頁面時,這可能會導致更多的請求(對於這些單獨的css文件)到你的服務器。 通常這不會是一個大問題,但是如果你正在談論這樣的優化,這可能是一個問題。

1

假設瀏覽器服從specification,它會簡單地忽略*zoom屬性:

用戶端必須忽略聲明 與未知屬性。例如, 如果樣式表是:

h1 { color: red; rotation: 70minutes } 

用戶代理將此舉視爲 樣式表已經

h1 { color: red } 

至於如果這樣的瀏覽器發現一個會發生什麼空的聲明塊,我不知道。我沒有看到規範中提到的場景,所以我想這是一個實現細節,它會通過瀏覽器區分瀏覽器。

相關問題