2013-07-14 26 views
1

在CSS中,可以將font-weight設置爲normal,bold,bolder,lighter,inherit以及來自100-900的平面整數值。現在我的問題是:爲什麼會有這種可能的整數值?爲什麼我們沒有列出的屬性字符串值,誰有這個想法使用整數值,爲什麼這些而不是從1-9CSS中字體重量整數值的含義是什麼?

回答

3
關於

在標題中的問題:的font-weight的整數值表示的字體的不同的可能的字體權值,並且它們可能需要被重新解釋如果字體格式不具有9個字體權值的標度。對於TrueType格式,該值是分配給OS/2表中項目usWeightClass的字體的值。

字體通常具有諸如「常規」,「光」,「重」,「粗體」等屬性的名稱。儘管CSS3字體在數字和名稱之間描述了「rough correspondence」,但這些單詞的用法各不相同。

這些數字只是一個序數量級;例如,我們唯一可以對重量爲100和200的字體說的是,後者不是前者更輕。數字與「黑度」或字符的筆畫寬度之間的對應關係與字體有關。

根據定義,值normal等於400,根據定義,值bold等於700。這些只是CSS中可用的關鍵字,作爲這兩個數字的替代品。

bolderlighter是相對於親本的字體粗細;他們分別將數值映射到更大或更小的值。所以他們不構成新的權重。

inherit意味着一個屬性的值將被設定爲等於父元素的屬性的值。

因此,唯一真正的權重是從100到900的九個值。對於網頁上常用的大多數字體,只有少數這些權重可用(通常只有400和700,或者可能只有400)。

關於「爲什麼會有這種可能的整數值?」,9個權重的比例被認爲是足夠的 - 字體只是沒有更多的權重。

關於「爲什麼我們不具有列出屬性字符串值」,數字是中性的,可用於字體命名方案的獨立使用。

關於「到底爲什麼這些,而不是從1-9」,規模100,200,...允許引入中介權重 - 以防萬一有些字體設計者有一天要花費時間設計九點多字體。這種有點奇怪的編號方案可以在稍後引入更精細的規模。

2

該命名法是從TrueType字體繼承而來的。

引用Wikipedia

TrueType字體格式引入從100分至900,其中400是規則的(羅馬或普通紙),這也是在CSS和OpenType使用。字體的第一個算法描述可能是由Donald Knuth在他的Metafont和TeX程序系統中完成的。