2010-10-12 55 views
4

是否可以將不同的字體分配給不同的字體權重?例如,如果我有2種字體,「helvetica roman」和「helvetica bold」,我想要500的字體重量總是顯示「helvetica roman」,字體權重爲700,總是顯示「helvetica粗體「CSS將字體分配給字體權重

我知道這個功能可以通過cufon獲得,但是想用直CSS。

謝謝!

+0

有一個屬性選擇。也許有可能實現它......我不知道如何。 http://www.w3.org/TR/CSS2/selector.html#attribute-selectors – BrunoLM 2010-10-12 01:17:34

+0

將一個呈現屬性與另一個呈現屬性掛鉤似乎不必要的複雜。你的HTML應該包含足夠的元信息(類,id,有意義的結構),你可以定位除font-weight之外的其他字體(font-weight本身不應該包含在HTML中,而應該在類,id ,或標題級別)。 – STW 2010-10-12 03:04:52

回答

3

如果您使用font-weight風格的行內,那麼你可以使用(example on jsFiddle

*[style~="font-weight:"][style~="500;"] 
{ 
    /* Font 1 */ 
} 
*[style~="font-weight:"][style~="700;"] 
{ 
    /* Font 2 */ 
} 

我不知道瀏覽器的兼容性(以上是在Firefox測試)。我建議使用classes。另外,這可能不是防彈的。

+0

你讓我感到矛盾。一方面,這是一個非常聰明的解決方案 - 另一方面,我認爲這應該包括一個關於它有多麼異常的聲明,以及它是如何聞到錯誤的解決方案。 – STW 2010-10-12 03:02:23

+0

...但用於回答問題的問題 – STW 2010-10-12 03:02:47

+0

這與我認爲可以使用CSS的結果差不多。我不認爲我真的會使用這個解決方案(永遠):),但很高興知道。謝謝! – 2010-10-14 22:10:48

0

你正在倒退,但並不遙遠。使用各種標題級別(h1,h2等)並將CSS分配給這些!它們已經暗示了權重,並且每個都可以通過CSS分配一個不同的字體。

0

這不是CSS的工作原理。你想要使用類或標籤,最好是具有語義意義。您不會根據文體信息(如字體重量)分配樣式;你給它們基於語義信息(如「這是否有Header課嗎?」或「這是標記爲strong?」)

.Header /* or h1, h2, h3, h4, h5, h6, or strong, or any combination of these */ 
{ 
    font-family: "Helvetica Bold"; 
} 

.Normal /* or just body, and everything will inherit it unless overriden */ 
{ 
    font-family: "Helvetica Roman"; 
}