溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

如何解決css樣式?jīng)_突問題

發(fā)布時(shí)間:2021-07-16 12:03:30 來源:億速云 閱讀:612 作者:chen 欄目:web開發(fā)

本篇內(nèi)容主要講解“如何解決css樣式?jīng)_突問題”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實(shí)用性強(qiáng)。下面就讓小編來帶大家學(xué)習(xí)“如何解決css樣式?jīng)_突問題”吧!

解決方法:1、細(xì)化選擇符,將選擇器的描述寫得更加精確;2、再寫一次選擇器名;3、改變CSS樣式表中的順序;4、主動(dòng)提升優(yōu)先級(jí),在需要使用的樣式后加上關(guān)鍵字“!important”。

本教程操作環(huán)境:windows7系統(tǒng)、CSS3&&HTML5版、Dell G3電腦。

1. 細(xì)化選擇符

通過使用組合器(Combinator)將選擇器的描述寫得更加精確,例如對(duì)于下述代碼片段,如果想給.cellphones中的.apple增加樣式,只使用.apple,勢(shì)必會(huì)對(duì).fruit中的.apple也造成影響。

<div class="cellphones">
  <div class="apple"></div>
</div>
<div class="fruit">
  <div class="apple"></div>
</div>

可以使用后代組合器(Descendant Combinator)或子代組合器(Child Combinator)這種更為精確的描述。描述得越精確,優(yōu)先級(jí)越高,優(yōu)先級(jí)更高的描述會(huì)覆蓋優(yōu)先級(jí)較低的描述。

/* 后代組合器:所有后代節(jié)點(diǎn) */
.cellphones .apple {
	border: 1px solid black;
}

/* 更加精確的后代組合器 */
body .cellphones .apple {
  border: 1px solid blue;
}

/* 子代組合器:直接子節(jié)點(diǎn) */
.cellphones > .apple {
  border: 1px solid red;
}

如果給.apple按順序加上上述全部樣式,最終,邊框?qū)⒊尸F(xiàn)藍(lán)色。

詳細(xì)的優(yōu)先級(jí)規(guī)則參見CSS 優(yōu)先級(jí)

2. 再寫一次選擇器名

本質(zhì)上是上一種情況的特例。例如對(duì)于.apple,添加如下樣式:

.cellphones > .apple.apple {
  border: 1px solid purple;
}
.cellphones > .apple {
  border: 1px solid red;
}

最終,邊框?qū)⒊尸F(xiàn)紫色。

3. 改變CSS樣式表中的順序

對(duì)于相同類型選擇器指定的樣式,在CSS文件中的順序靠后的樣式會(huì)覆蓋之前的樣式。 例如對(duì)于下述代碼中的div元素,瀏覽器渲染的結(jié)果會(huì)是紅色的:

<div class="redBorder" class="blackBorder"></div>
.blackBorder {
  border: 1px solid black;
}
.redBorder {
  border: 1px solid red;
}

需要注意的是,盡管在HTML文件中.blackBorder出現(xiàn)在.redBorder后,但優(yōu)先級(jí)的判斷是根據(jù)他們?cè)贑SS文件中的順序。也就是說,CSS文件中更為靠后的.redBorder才會(huì)被采用。

4. 主動(dòng)提升優(yōu)先級(jí)(不建議)

還有一種簡單粗暴但是并不建議的辦法,就是在需要使用的樣式后加上關(guān)鍵字!important可以將樣式優(yōu)先級(jí)提到極高。例如:

<div class="redBorder" class="greenBorder"></div>
.greenBorder {
  border: 1px solid green !important;
}
.redBorder {
  border: 1px solid red;
}

對(duì)于上述代碼,邊框?qū)@示為綠色。

使用 !important 是一個(gè)非常不好的習(xí)慣,會(huì)破壞樣式表中固有的級(jí)聯(lián)規(guī)則,使得調(diào)試變得非常困難!

到此,相信大家對(duì)“如何解決css樣式?jīng)_突問題”有了更深的了解,不妨來實(shí)際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

css
AI