為理解用戶代理如何決定字體變形的粗細,得先從關鍵字100到900談起,然後我們再來看它是如何繼承的。
font-weight允許值 normal | bold | bolder | lighter | l00 | 200 | 300 | 400 | 500 | 600 | 700 | 800 | 900
這些數字關鍵字用於定義與字體的相關特徵的映射關係,即字體的粗細被分成九個等級。例如,OpenType就使用了九個值的數字級。字體有了這 等級之後,這些數字就直接映射到各個級,如100映射到最輕的字體變形,而900對應最重的字體變形。
事實上,在這些數字中並不存在本質的字體粗細的約定。 CSS指出,每個數字對應的字體粗細不得小於它前面的數字所對應的字體粗細。
這樣,100,200,300和400或許都對應同樣粗細的字體變形,而500和600可能對應到一個更粗的字體變形,700,800和900則對應下另一種更粗的字體變形。
這數字被定義為同某些普通的,而700對應於bold。
字體變形名等價。 400等價丁normal
其他數字不對應任何
font-weight屬性的關鍵字,但它們可以對應到普通的字體變形名。如果某種字體變形標記為“Normal”、“Regular”、“Roman”或“Book”,那麼它便被分配給400,而且任何標記為“Medium”的字體變形就對應於500。
然而,如果標示為「Medium」的字體變形是唯一可用的字體,那麼它就不能與500相對應。
如果在某個給定的字體系列裡少於九個字體粗細級,則使用者代理需要做更多的工作。在這種情況下,它必須用一種預先定義的方式來填滿其間的空隙:
如果值500未分配,它就被賦予同400一樣的字體粗細。
如果300未分配,它就比400稍輕的字體變形對應。如果沒有更輕的字體可用,300就同400一樣對應某個層級。這通常是在“Normal”和“Medium”情況下。同樣的方法用於100和200。
若600未分配,它便同比400稍重的字體變形對應。如果沒有這樣的字體可用,600就同500一樣對應某種字體變形。這種方法也用於700,800和900。
為了方便理解,讓我們來看三個
字體粗細分配的例子,首先假設字體系列Karrank%是OpenType字體,而且已經定義了9個對應的粗細級。
在這裡,這些數字分別對應於各級,而關鍵字normal和bold各自分配給400和700。在第二個例子裡,我們考慮字體系列Zurich,它在本內容的開始提到。假設其字體變形也被分配了下面的粗細值。
字體形式:Zurich Light 分配的關鍵字:空白 分配的數字:100,200,300
字體形式:Zurich Regular 字體形式:Zurich Medium 分配的關鍵字:空 分配的數字:500
字體形式:Zurich Bold 分配的關鍵字:bold 分配的數字:600,700
# 的關鍵字:空白 分配的數字:800 字體形式:Zurich UltraBlack 分配的關鍵字:空白 分配的數字:900 頭三個數字分配給最輕的字體。普通字體對應關鍵字400和normal。 Medium字體分配給數字500。沒有字體變形分配給600,因此將600和700一起對應於同一字體變形Bold字體。最後800和900分別分配給Black和UltraBlack字體變形。
也只有當最上面的兩個粗細級已經分配後,才會出現這樣的情況。
否則使用者代理程式可能會忽略它們,並將800和900指派給Bold字體,或將它們指派給兩個Black字體變形之一。最後,讓我們來看看Times宇體,它只有兩種字體變形,TimesRegulal和TimesBold,如下所示。 字體形式:TimesRegular 分配的關鍵字:normal 分配的數字:100,200,300,400,500 字體形式:TimesBold # 太空normal和bold的分配相當直接。對於這些數字,100到300分配給Regular字體,但500怎麼辦呢?它被分配給Regular字體了,因為沒有Medium字體;這樣它就同400一樣了。 剩下的,700總是分配給bold字體,而800和900,由於缺乏更粗的字體,也分配給Bold字體。最後,600被分配給下一個比較粗的字體,當然,也只有bold字體了。
字體粗細可被繼承,如果將段落設為bold,則所有的子元素都會繼承粗體,如下:
p.one { font-weight:bold; }
以上是css中的font-weight屬性實例用法詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!