您好,登錄后才能下訂單哦!
今天就跟大家聊聊有關CSS中出現樣式沖突如何解決,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。
1. 細化選擇符
通過使用組合器(Combinator)將選擇器的描述寫得更加精確(參考CSS選擇器 - MDN ),例如對于下述代碼片段,如果想給.cellphones中的.apple增加樣式,只使用.apple,勢必會對.fruit中的.apple也造成影響。
<div class="cellphones"> <div class="apple"></div> </div> <div class="fruit"> <div class="apple"></div> </div>
可以使用后代組合器(Descendant Combinator)或子代組合器(Child Combinator)這種更為精確的描述。描述得越精確,優先級越高,優先級更高的描述會覆蓋優先級較低的描述。
/* 后代組合器:所有后代節點 */ .cellphones .apple { border: 1px solid black; } /* 更加精確的后代組合器 */ body .cellphones .apple { border: 1px solid blue; } /* 子代組合器:直接子節點 */ .cellphones > .apple { border: 1px solid red; }
如果給.apple按順序加上上述全部樣式,最終,邊框將呈現藍色。
詳細的優先級規則參見CSS 優先級
2. 再寫一次選擇器名
本質上是上一種情況的特例。例如對于.apple,添加如下樣式:
.cellphones > .apple.apple { border: 1px solid purple; } .cellphones > .apple { border: 1px solid red; }
最終,邊框將呈現紫色。
3. 改變CSS樣式表中的順序
對于相同類型選擇器指定的樣式,在CSS文件中的順序靠后的樣式會覆蓋之前的樣式。
例如對于下述代碼中的div元素,瀏覽器渲染的結果會是紅色的:
<div class="redBorder" class="blackBorder"></div>
.blackBorder { border: 1px solid black; } .redBorder { border: 1px solid red; }
需要注意的是,盡管在HTML文件中.blackBorder出現在.redBorder后,但優先級的判斷是根據他們在CSS文件中的順序。也就是說,CSS文件中更為靠后的.redBorder才會被采用。
4. 主動提升優先級(不建議)
還有一種簡單粗暴但是并不建議的辦法,就是在需要使用的樣式后加上關鍵字!important可以將樣式優先級提到極高。例如:
<div class="redBorder" class="greenBorder"></div>
.greenBorder { border: 1px solid green !important; } .redBorder { border: 1px solid red; }
看完上述內容,你們對CSS中出現樣式沖突如何解決有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。