天天看點

内聯 Style 簡寫屬性的發現内聯 Style 簡寫屬性的發現

平時在使用内聯樣式簡寫屬性的時候,可能沒有考慮到浏覽器解析的問題。問題不大,簡寫的好處是代碼量少,但最近發現了一個有意思的内聯簡寫屬性的問題。

以下問題僅在内聯樣式裡會出現,如果是通過 style 标簽或 css 檔案引入則不會有這樣的問題。

設定一個元素的背景色為白色,比如這麼寫:

你可能以為浏覽器會這樣輸出:

一下少了 6 個位元組,而浏覽器的真真實解析情況是:

内聯 Style 簡寫屬性的發現内聯 Style 簡寫屬性的發現

潛在的問題是:将會預設設定一些其他的屬性到樣式裡,而通過 css 又很難恢複這種預設屬性。

我們來驗證一下這個問題:

使用屬性簡寫的浏覽器呈現:

内聯 Style 簡寫屬性的發現内聯 Style 簡寫屬性的發現

而非簡寫的呈現:

内聯 Style 簡寫屬性的發現内聯 Style 簡寫屬性的發現

上面例子裡的 html 代碼:

那麼:

而如果例子修改為:

另外一個例子是 <code>font</code> 屬性,也會有這個問題:

内聯 Style 簡寫屬性的發現内聯 Style 簡寫屬性的發現

這個時候:

内聯 Style 簡寫屬性的發現内聯 Style 簡寫屬性的發現

結果:

能看到通過 style 擷取元素屬性時會傳回非預期結果,是以使用 css 處理這類樣式,最好是隻設定你需要的屬性,盡量不要簡寫,除非你明确知道這個操作的結果

繼續閱讀