2012-02-27 45 views
25

的只有眼前的孩子我有一個div,並在div我想創建另一個div具有不同級別且內部div從外div CSS設置完全分離。如何申請的CSS的某一類

像這樣:

<div class="outer"> 
    <div><h1> h1 </h1><div> 
    <div class="inner"> 
     <h2> h2 </h2> 
    </div> 
    <h2> h2 </h2> 
</div> 
.outer h1{ color:blue; } 
.outer h2{ color:red; } 

.inner { height: 111px; } 

我想要的是取消設置從h2紅色的"inner" div

這似乎愚蠢的不只是超重的顏色爲黑色在這裏,但是如果我在CSS中有更多的參數或者即使它是動態的,該怎麼辦?

編輯:我想這不是很清楚,但我需要的實際上與我到目前爲止的答案相反。我有一個主容器div,它在CSS中有很多設置。現在我想在沒有任何主容器CSS設置的情況下將div插入到主容器中。

回答

40
.outer > h2 { color:red; } 

這種方式只有外部div的直接子才能得到這個顏色值,應該固定工作。

+0

雅我想這是不明確的。但我所需要的實際上與此相反。我有一個'main-container div',它在'css'中有很多設置。現在我想在'main-container'中插入'div',而沒有任何'main-container' css設置 – 2012-02-27 20:03:51

+0

有幾種方法。一個是爲'.inner h2 {...}'指定一個'color'。這將使主控制器內的所有其他h2都相同,只有內部的不同。另一個是給最後的h2一個類,併爲它指定一個不同的顏色,並且主控制器不嘗試對h2進行樣式設置。這將導致內部的h2和所有其他的h2相同,而另一個h2的風格不同。例子:http://jsfiddle.net/5pvpdfud/ – 2014-12-17 20:25:13

+1

[CSS3中有四種不同的組合器:](http://www.w3schools.com/css/css_combinators.asp) 1.後代選擇器(空格):'所有後代 2.子選擇符(>):'.outer> h2':立即子 3.鄰接兄弟選擇符(+):'.outer + h2':來自同一父母的立即兄弟 4。一般兄弟選擇器(〜):'.outer〜h2':所有來自同一父母的兄弟姐妹 – Abhijeet 2016-09-19 09:15:43

0

我想你需要的是

.inner h2 {color: inherit} 
+1

遐我想我需要完全相反,併爲整個班級 – 2012-02-27 09:24:34

0
.outer .inner * { color: #000; } 

套內部容器中的所有元素具有黑色。

Demo here

+0

這是一個很好的解決方案,但如果我有20個設置,它不是隻有h1標籤? – 2012-02-27 21:29:32

+0

這段代碼將'.outer .inner'中的所有內容都設置爲黑色。玩與我鏈接到的演示...所有的標籤都會改變。 – Scott 2012-02-27 22:43:18