2010-01-27 48 views
2

我有一個CSS類規則:我如何從css id規則繼承屬性到css類?

.test{ text-align:center; font-family:Verdana; } 

,我想創建另一個ID規則(我希望它是由「ID規則」對主叫):

#divNew1{ color: Red; } 
#spanNew2{ color: Green; } 
#pNew3{ color: Yellow; } 

我有很多的div元素。我想通過只改變css文件將.test類屬性傳遞給其他元素。這就是爲什麼我不想爲div元素添加class屬性的原因。下面的HTML代碼:

<div id="divNew1">Ta ta taaaaa</div> 
<span id="spanNew2">Ta ta taaaaa</span> 
<p id="pNew3">Ta ta taaaaa</p> 

但我想通過繼承,我不希望類屬性添加到div等作爲上面添加。測試類屬性#divNew類。 有沒有辦法做到這一點?

+0

不幸的是,CSS不是一個合適的OOP語言,它根本不被認爲是一種編程語言。你不能真正將你從PHP或其他語言知道的東西應用到它。它真的有自己的風格。 – 2010-01-27 14:40:26

回答

7

只需在上層聲明中包含ID類,即任何屬性的最後聲明獲勝。例如。如果第一條規則有color: Green;,.test將是綠色,則#divNew仍然是紅色。

.test, #divNew{ text-align:center; font-family:Verdana; } 
#divNew{ color: Red; } 
+0

打我吧:( – Chris 2010-01-27 14:33:45

+0

你知道這樣的面向對象的繼承:「類NewClass:OldClass」或在Java「類NewClass extends OldClass」。有沒有辦法做到這一點? – uzay95 2010-01-27 14:34:15

+0

你不能,你可以使用嵌套類,例如

這將把兩個樣式聲明合併到div – 2010-01-27 14:36:03

0
<div id="divNew" class="test">Ta ta taaaaa</div> 
+0

但是您沒有使用繼承來創建id規則? – uzay95 2010-01-27 14:29:52

+0

對不起......你是對的。尼克是對的。在CSS中,要聲明的最後一個樣式將被繼承。 – jay 2010-01-27 14:36:58

0

不知道理解你,但:

.test{ text-align:center; font-family:Verdana; } 
#divNew.test{ color: Red; } 
2

我相信這個問題是,我可以「#divNew」 CSS規則繼承現有「測試」的規則,這樣的特性:

[Psuedo Code] 

.test { color: red; } 

#divNew : .test { border: 1px solid Black } 

...導致id爲#divNew的元素同時獲得紅色文本和黑色邊框。

答案是否定的 - 沒有語法來聲明另一個規則繼承一個規則 - 但是您可以將多個CSS規則應用於一個元素。

在此示例中,該元素將採用「#divNew」和「.test」和「.another」的規則。它會覆蓋任何與CSS中最後一條規則相沖突的屬性。

<div id="#divNew" class="test another">... 
1

LESS/dotLess允許您使用CSS樣式語法在服務器端的CSS文件中執行額外的處理。 LESS。我從菲爾哈克鏈接到帶點,但我無法找到目前一個有效的鏈接(http://www.dotlesscss.com/快到了空對我來說)

編輯

或者T4CSS

1

你這是什麼意味着繼承?如果在HTML中#divNew是.test的孩子,那麼.test的CSS屬性已經被它繼承了(除非你通過設置特定的#divNew屬性來覆蓋它們)。

語法用於添加直接#divNew性質,這也是。測試:

#divNew.test {/*properties*/} 

語法用於添加屬性#divNew這是一個孩子。測試:

.test #divNew {/*properties*/}