在CSS中,層疊權重是一個非常重要的概念,它決定了當不同的CSS樣式規則同時應用于同一個元素時,哪個規則將最終生效。
層疊權重是一個數字,其范圍從0到無窮大。它是由選擇器的特殊性、選擇器的來源和!important聲明組成的。
首先,當多個選擇器應用于同一個元素時,具有更高特殊性的選擇器將具有更高的層疊權重。例如,一個ID選擇器的特殊性高于類選擇器或標簽選擇器。
/* ID選擇器(#)的特殊性為1 */ #example { color: red; } /* 類選擇器(.)的特殊性為10 */ .example { color: blue; } /* 標簽選擇器的特殊性為1 */ span { color: green; }
在上面的示例中,如果給一個具有ID“example”的元素應用所有三個樣式規則,則規則#example將具有最高的層疊權重,因為它具有最高的特殊性。
其次,當來自不同源的樣式表應用于同一個元素時,具有更高來源的樣式表將具有更高的層疊權重。例如,用戶代理樣式表(如瀏覽器默認樣式)的來源低于開發人員提供的樣式表。
最后,如果一個CSS聲明被標記為!important,則它將具有最高的層疊權重,無論特殊性或來源如何。
.example { color: blue !important; }
在上面的示例中,class="example"的元素將始終具有藍色文本,即使其他樣式規則具有更高特殊性或來源。
總之,層疊權重是CSS中一項非常重要的概念,可以確保元素的樣式在多個樣式規則之間正確地生效。開發者應該了解層疊權重的計算方式,以確保他們的樣式表正確地應用于他們的網站和應用程序。
下一篇CSS中盒子陰影過渡