2013-07-12 33 views
0

是否可以使用CSS來指定一個特定的HTML標籤應該總是有一個特定的類?喜歡的東西:我可以指定一個特定的標籤總是有一個特定的類嗎?

p { 
    class: fun; 
} 

h3 { 
    class: fun; 
} 

.fun { 
    font-family: "Comic Sans" 
} 

(我知道這是可能不是一個好主意,我想知道的大多是學術原因)

我想做到這一點,而不使用Javascript/jQuery的 - 只使用CSS和HTML。

更新

我知道如何把樣式規格中的每個元素 - 我要的是能夠改變類在一個地方的.css文件,並把它應用到所有其他具有該類的元素,而不必更改任何HTML。我希望這些類默認應用於所有特定標記,來自css文件。 (再次,我意識到這不是好設計 - 我只是好奇,如果有可能的話)。

+2

不可能將這些類添加到僅包含CSS的元素中,但是如果您想要將一組類中的屬性添加到其他選擇器中,則可以使用預處理器(如less或scss)。參見[Less](http://lesscss.org/)的mixin和一個快速的[Demo](http://jsbin.com/ehisov/2/edit)。 –

回答

1

不,這是不可能的CSS或CSS預處理器。

您需要一些HTML預處理器(如XSLT)來實現這一點。

1

像這樣使用標準的CSS

p, h3 { 
    font-family: "Comic Sans" 
} 

否則,您可以使用像LESS和其混入特點:http://lesscss.org/#-mixins

+0

看到我的更新 –

+1

好吧,那麼你需要LESS來爲你編譯CSS。看到我的鏈接上面 –

2

可以達到這樣的效果相同:

p, h3, .fun { 
    font-family: "Comic Sans" 
} 

我想實現這個沒有JavaScript/jQuery的 - 只使用CSS和HTML

您無法使用CSS設置類。你可以使用HTML來做到這一點,但你不能自動化它,我想你不想手動地將這個類手動添加到每個<p><h3>

+0

好吧,所以這是不可能的。謝謝! –

3

其實這個代碼應工作:

p, h3, .fun { font-family: "Comic Sans"; } 

但是,如果你的情況是「不同的情況」以及上面沒有你尋找答案的代碼,你可以使用Less的解決方案。

試着寫一些CSS功能對於這種情況,如下圖所示:

.fun{ 
    font-family: "Comic Sans"; 
} 

p{ .fun(); } 
h3{ .fun(); } 

隨着,你可以創建功能。希望有用。

+0

是的,第一個解決方案是一個不錯的CSS和簡單的解決方案。較少可以用於更復雜的東西,這些在使用參數時非常強大。或者使用scss擴展一個抽象類,這種方式不會像編譯的Less CSS那樣對2個不同的選擇器重複相同的規則。 –

+0

有趣 - 我在一個可以使用SASS的環境中,所以我會探索。問題:1.你給出的例子是一個完整的更少的例子?每個類都得到一個自動函數? 2.如果是這樣,你知道SASS的等價物嗎? –

+1

@FabrícioMatté完美。 With Less,css對於我們創建的自帶參數的函數非常有趣。將有用和動態感受。 –

0

你不能在CSS中設置類,你需要JavaScript。

var h = document.getElementsByTagName("h3") 

for (I=0; I<h.length; I++) { 
    h[I].classList.add("fun") 
} 

或者你可以寫你的HTML這樣的:

<fun>This is fun!</fun> 

而在這樣的CSS目標是:

fun{ 
    font-family:Hectiva; 
} 
相關問題