2012-03-23 25 views
0

我知道有很多類似的問題,但其中任何一個都沒有幫助。在特定的div我需要清除所有的CSS格式從這個div的高層。css在特定div下復位

例如「h2」的所有網站的風格都是粉色的,但它的罰款,但下class =「富」h2需要重置黑色,但如果我想我可以把任何其他類下foo div和h2紅色將可用。

一般H2>粉色

<h2>I am pink</h2> 

<div class="foo"> 
<h2>I am black</h2> 
</div> 

<div class="foo"> 
<div class="somestyle"> 
<h2>I am red</h2> 
</div> 
</div> 

感謝您的幫助

+0

對於「重置」,你的意思是恢復到默認的瀏覽器?用戶偏好?嗯,我不確定這是可能的大多數風格。你有'font-size:medium',但就是這樣。 – 2012-03-23 13:29:09

+0

我知道它現在沒有幫助,但這是未來將會很棒的時代之一。查看HTML5'scoped' CSS:http://html5doctor.com/the-scoped-attribute/ – 2012-03-23 13:29:54

回答

0

你需要考慮到CSS中的優先級(或級聯)的順序,如果你宣佈你h2元素是粉紅色的全球範圍內,比它會不管它的立場解讀爲粉紅色。除非你在某個班級中指定了不同的風格,否則會改變它。所以,在你的情況下,CSS會這樣寫:

h2 { 
    color:pink; 
} 

•所有h2元素將被顯示爲粉紅色

.foo h2 { 
    color: black; 
} 

•在.foo類的所有h2元素將被顯示爲黑色。

.somestyle h2 { 
    color:red; 
} 

•在.somestyle類的所有元素h2將顯示爲紅色。

讓您可以通過更加具體與您的選擇,例如:

.somestyle .foo h2 { 
    color:blue; 
} 

•在這裏,我們選擇的任何h2元素,這是一個.foo孩子誰是.somestyle和一個孩子給出不同的顏色。請注意該選擇器.somestyle .foo的細節,而不是像.foo這樣的不太具體的選擇器。

demo

通知的順序是怎樣寫的。首先給出您的全球h2樣式,然後在其他類下指定不同的顏色來覆蓋該順序。所以這都是關於組織的。

這裏的優先順序的好文章:http://www.vanseodesign.com/css/css-specificity-inheritance-cascaade/

注:我不建議你使用的重要聲明,因爲它會破壞你的規則自然流動,使用適當的具體選擇,而不是!

1

CSS interits,所以去從目標的HTML樹生成符合HTML結構的聲明:

.foo h2 { color:#000000 } 

.foo .somestyle h2 { color:#ff0000 } 
+0

我試過了,但是這樣做太多了,有些需要!重要的也許可能是雙重!甚至是重要的? – Mert 2012-03-23 13:34:15

+1

!重要的通常是一個很好的指標,你需要重新考慮你的HTML/CSS。這是一個鈍器,應儘可能避免。 – 2012-03-23 13:52:55