2010-01-26 50 views
0

我有以下的CSS:如何重用CSS選擇器?

.foo .bar { 
    background: red; 
} 

工作正常以下HTML:

<div class="foo"> 
    <div class="bar">I have a red background</div> 
</div> 

,但我似乎無法找到一個方法來重複使用CSS定義,當我不在父母/子女關係中。例如,我怎麼能適用相同的CSS以下DIV:

<div class="???">I want a red background!</div> 

回答

10

多個選擇,您可以添加額外的選擇與在W3C selectors grouping

.foo .bar, .foobar { 
    background: red; 
} 

規定,這將在兩個

工作逗號(,) 210
<div class="foo"> 
    <div class="bar">I have a red background</div> 
</div> 

<div class="foobar">I want a red background!</div> 
+4

更快,更強,更大(Daft Punk) – enguerran 2010-01-26 17:13:53

+1

@enguerran *笑* – 2010-01-26 17:15:35

7

您可以用逗號來指示CSS規則應適用於

.foo .bar, .??? { 
    background: red; 
} 
+0

+1,只是打敗了我。 – Johrn 2010-01-26 17:11:27

1

用逗號分隔的選擇列表中的定義:

.foo .bar, .otherSelector, #someID{ 
    background: red; 
} 
0
.foo .bar, .redback { 
    background: red; 
} 

會做一個魔術

<div class="redback">I want a red background!</div> 

或擺脫層次結構並僅使用

.bar { 
    background: red; 
} 

將工作這兩種情況下

0

嘗試

.foo .bar, .foobar { 
    background: red; 
} 

<div class="foo"> 
    <div class="bar">I have a red background</div> 
</div> 

<div class="foobar">I want a red background!</div> 
0

的 「包含.foo的.bar」 CSS定義明確書面父子(更準確的祖先 - 派生)關係。

你可以寫這樣的CSS:

.alternate-background { 
    background: red; 
} 

和HTML這樣的:

<div> 
    <div class="alternate-background">I have a red background</div> 
</div> 

這將讓你也使用這個:

<div class="alternate-background">I want a red background!</div>