當我們寫CSS時,有時會遇到選擇器沖突的問題,此時就需要通過CSS的權重機制來確定哪一個選擇器會生效。CSS權重的作用是用于計算一個元素匹配到的樣式規則的優先級,其取值為一個數值,權重值越高,規則越優先被應用。
/* CSS權重由上到下:行內樣式 >ID選擇器 >類、屬性、偽類選擇器 >元素選擇器、偽元素選擇器 >繼承樣式 */ #container p { /* 權重值為101,ID選擇器1個,元素選擇器1個 */ color: red; } /* 權重值為11,類選擇器1個,元素選擇器1個 */ .box p { color: blue; } /* 權重值為1,元素選擇器2個 */ div p { color: green; }
總結一下:
- 行內樣式的權重最高
- ID選擇器的權重值為100,其它選擇器(類、屬性、偽類選擇器以及元素選擇器、偽元素選擇器)的權重值都為1
- 選擇器的數量不會影響權重的計算結果,權重值只由選擇器本身的類型和數量決定,所以選擇器的特殊關系(子元素、同級元素等)也不會影響權重的計算
需要注意的是,盡量減少選擇器的數量,以避免權重計算帶來的性能問題。正確地使用CSS權重機制,可以避免不必要的選擇器沖突,從而保證樣式的正確應用。
下一篇css權威指南第六版