定義網頁樣式時,必須了解 CSS 優先順序的概念,以確保獲得所需的樣式結果。在多個 CSS 聲明應用於相同元素的情況下,優先順序規則會決定哪些規則覆寫其他規則。
考慮以下場景:
<link href="/Content/Site.css" rel="stylesheet" type="text/css" /> <style type="text/css"> td { padding-left:10px; } </style>
在此範例中,td 元素的內聯樣式(指定padding-left:10px;)似乎被忽略,儘管稍後出現在程式碼中。使用Firebug 等開發工具檢查網頁發現引用的樣式表包含:
.rightColumn * {margin: 0; padding: 0;}
發生衝突是因為引用的樣式表規則.rightColumn * 適用於#rightColumn 元素中的td 元素並覆蓋內聯樣式.
CSS 特異性規則決定CSS 聲明的優先順序。這些規則根據選擇器的數量及其特殊性為每個聲明分配一個數值。具有較高特異性值的聲明優先。
在這種情況下,引用的樣式表規則 .rightColumn * 比 td 的內聯樣式具有更高的特異性,因為它有更多的選擇器。
要解決此類衝突,主要有兩種方法:
在提供的範例中,最佳解決方案是增加td 內聯樣式的特異性透過添加類別或ID:
<table class="mySpecialTable"> <tr> <td style="padding-left:10px;">Example data</td> </tr> </table>
此修改將確保具有類mySpecialTable的表中td 元素的內聯樣式會覆蓋引用樣式表中的衝突規則。
以上是當多個樣式應用於相同元素時,如何解決 CSS 優先衝突?的詳細內容。更多資訊請關注PHP中文網其他相關文章!