2011-05-27 32 views
7

請注意,這與以前的問題How can I apply CSS on all buttons which are present in that page?不同,因爲這是已有的樣式。因此考慮到風格,我們稱之爲「standard_label_style」已經存在於包括CSS文件,我能做些什麼來說,所有此頁面上的標籤應該具有的風格短加入:我想將現有的CSS樣式應用於頁面上的所有標籤。怎麼樣?

class="standard_label_style" 

到每一個?是的,我知道我可以將事後樣式應用到jQuery或JavaScript代碼片段中。我只是想了解我應該如何用CSS來做到這一點。

跟進

我已經得到了一些評論認爲,說只要使用語法這樣.standard_label_style,標籤......不幸的是,什麼也不做像我想要什麼。這將允許我將其他規則應用於standard_label_style類以及此頁面中的標籤規則,但不允許將該樣式應用於此頁面上的所有標籤。要看到這個例子,這裏是一個樣式表和html來演示。沒有課堂的標籤仍然不會以紅色顯示,但這正是我希望能夠發生的事情。我想將現有的類應用於頁面上的所有標籤,而不僅僅是帶有類的標籤,並且不在此頁面上添加新的樣式,現有樣式應該是唯一的樣式。

included.css:

.standard_label_style { color: red; } 

的test.html:

<html> 
    <head> 
    <link rel="stylesheet" type="text/css" href="included.css"> 
    <style> 
     .standard_label_style, label { } 
    </style> 
    </head> 
    <body> 
    <label class="standard_label_style">Test Label</label><br/> 
    <label>Unclassed Test Label</label> 
    </body> 
</html> 

回答

11

CSS並不像那樣。

您可以將樣式直接所有標籤:

label { 
    color: Lime; 
} 

或應用類的所有標籤

.labelClass { 
    color: Lime; 
} 

<label class="labelClass"></label> 

你也可以有多種選擇,所以你可以ammend當前的風格是

.labelClass, label { 
    color: Lime; 
} 

什麼你不能在標準的CSS做的是一樣的東西

label { 
    .labelClass; 
} 

好消息是,有一堆服務器端庫,這使得CSS少犯,讓你做的正是這種東西,見例如dotLess如果你使用.NET提供嵌套規則和一個基本的激勵模型。

4

在你的CSS文件,你不能只是把

.standard_label_style, label 
{ 
//styles 
} 
+0

不幸的是,請參閱修訂問題中的示例。 – 2011-05-27 19:27:02

3
.standard_label_style, label { 
    /* stuff */ 
} 
+0

沒有。這將允許我修改standard_label_style的內容,但不會將其應用於所有標籤。 – 2011-05-27 19:27:46

+0

沒有。實際上它「說」所有標籤元素和/或任何具有standard_label_style類的元素應用於它,都使用定義的樣式屬性。 – 2011-05-30 11:35:18

+0

感謝您的糾正。猜猜看,它仍然沒有讓你的答案正確... – 2011-05-30 15:46:54

8

要應用樣式到頁面上的每個標籤,請使用此CSS:

label { 
/* styles... */ 
} 

如果您有現有的樣式(例如,在CSS已經「standard_label_style」),您可以應用到每一個標籤:

.standard_label_style, label { 
/* styles... */ 
} 

這將影響通過該網站的標籤,所以請謹慎使用!

+0

該語法不適用於每個標籤,該語法允許我選擇standard_label_style和任何標籤標籤來添加或改變與兩者相關聯的樣式。它沒有做任何事情來使得standard_label_style的樣式特徵適用於HTML中的標籤。 – 2011-05-27 19:30:02

3

我不知道,你可以...一個可能的解決方法(感覺有點雖然的hackish)是樣式連接到你的身體標記,然後更改CSS是這樣的:

body.standard_label_style label{ 
    //Your styles here 
} 
+0

我同意使用CSS選擇器是你最好的選擇。 – Wex 2011-05-27 14:56:07

2

有史以來使用最少的CSS技巧之一:給你的身體一個id或class!

HTML:

<body id="standard_label_style"> 
    <label>Hey!</label> 
</body> 

CSS:

#standard_label_style label{ 
    the styles 
} 

將採取的風格,而

HTML:

<body id="custom_label_style"> 
    <label>Custom!</label> 
</body> 

不會。

0

你在這裏處理CSS優先級。 「更模糊」的聲明(body標籤,類)在「不太模糊」的聲明(特定元素,內聯CSS)之前應用。

因此,您的答案取決於樣式表如何樣式表定義label樣式。舉例來說,如果它說label {...},那是相當具體,最好的辦法是使用更具體的CSS樣式,請參閱:

的正如我所說,您需要重寫的「特異性」級別取決於您的其他樣式表的特定程度。根據鏈接,「嵌入在html中的CSS總是在外部樣式表之後出現,而不管html中的順序如何」。

如果你自己定義了label {your custom css},那麼應該可以工作的話,如果你事後導入你的樣式表,還有一種機會。這是我會先嚐試看看它是否有效。你試過這個嗎?結果是什麼?

請注意,如果您想要完全覆蓋其他樣式表,則還需要通過將其值設置爲inherit或根據需要重置所有未使用的CSS。

相關問題