如何處理有衝突的CSS規則

2021-09-06 08:31:22 字數 1056 閱讀 1668

如果同個元素有兩個或以上衝突的css規則,瀏覽器有一些基本的規則來決定哪乙個非常特殊而勝出。 

它可能不像其它那麼重要,大部分案例你不需要擔心衝突,但大型而且複雜的css檔案,或有很多css檔案組成的,可能產生衝突。 

選擇器一樣的情況下後面的會覆蓋前面的屬性。比如:

p  p

p元素的元素將是藍色,因為遵循後面的規則。 

然而,你不可能經常用相同的選擇器衝突達到目的,當你使用巢狀選擇器,合理的衝突來了。比如:

div p  

p 也許你看起來p元素在div元素裡面的顏色是藍色,就像後面p元素的規則,但是第乙個選擇器的特性卻是紅色。基本上,乙個選擇器越多特性,樣式衝突的時候將顯示它的樣式。 

一組巢狀選擇器的實際特性可以計算出來。基本的,使用id選擇器的值是100,使用class選擇器的值是10,每個html選擇器的值是1。它們加起來就可以計算出特性的值。

p的特性是1(乙個html選擇器) 

div p的特性是2(兩個html選擇器) 

.tree的特性是10(1個class選擇器) 

div p.tree的特性是1+1+10=12,(兩個html選擇器,乙個class選擇器) 

#baobab的特性是100(1個id選擇器) 

body #content .alternative p的特性是112(兩個html選擇器,乙個id選擇器,乙個類選擇器)

按照上面的規則,div p.tree的特性比div p高,body #content .alternative p又比它們兩個都高。

例如:

.all.all img.nowrap

<

div class="all"

>

<

span

class

="nowrap"

>

<

img

style

="float:none;vertical-align:middle;"

src=".."

>

span

>

div>

css衝突時的運用規則

css樣式中繼承的規則大體如下 1.影響頁面中元素的位置的屬性,或者像margin,background color,border這些屬性是不繼承的。2.瀏覽器自定義的一些元素的樣式,如link為藍色的,headline的字型等等。3.當css樣式衝突時,繼承的不會被採用。這裡再討論下one tag...

css屬性值的層疊衝突規則

層疊衝突 同乙個樣式,多次用到同乙個元素,就會發生層疊衝突,需要對樣式表有衝突的申明使用層疊規則,確定css屬性值 color 000000 important 總體規則 選擇器選中的範圍越窄,越特殊 具體規則 通過選擇器,計算出乙個4位數 數值越大,屬性值的優先順序越高 千位 若果是內聯樣式,記1...

Nginx是如何處理請求的

基於命名的虛擬伺服器 name based virtual servers nginx首先要確定由哪個伺服器 server 來處理這個請求,如下面的簡單的例子中,一共有3個虛擬主機,分別是 server 其中 是區分大小寫的正規表示式 為不區分大小寫的正規表示式 為了提高效率,實行嚴格匹配,如果找到...