平時在使用内聯樣式簡寫屬性的時候,可能沒有考慮到浏覽器解析的問題。問題不大,簡寫的好處是代碼量少,但最近發現了一個有意思的内聯簡寫屬性的問題。
以下問題僅在内聯樣式裡會出現,如果是通過 style 标簽或 css 檔案引入則不會有這樣的問題。
設定一個元素的背景色為白色,比如這麼寫:
你可能以為浏覽器會這樣輸出:
一下少了 6 個位元組,而浏覽器的真真實解析情況是:
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiIn5GcuI2MmNWOwcjNhNWO0QzMmNmNwAzN3EmNmRDOkNjNyIWZvwVbvNmLj5Wat4Wd5lGbh5iY1BXLn1WauU3bop3ZuFGat42YucWbp1iMhRXYvw1LcpDc0RHaiojIsJye.png)
潛在的問題是:将會預設設定一些其他的屬性到樣式裡,而通過 css 又很難恢複這種預設屬性。
我們來驗證一下這個問題:
使用屬性簡寫的浏覽器呈現:
而非簡寫的呈現:
上面例子裡的 html 代碼:
那麼:
而如果例子修改為:
另外一個例子是 <code>font</code> 屬性,也會有這個問題:
這個時候:
結果:
能看到通過 style 擷取元素屬性時會傳回非預期結果,是以使用 css 處理這類樣式,最好是隻設定你需要的屬性,盡量不要簡寫,除非你明确知道這個操作的結果