2016-12-01 76 views
0

當我在CSS中指定font-family屬性時,我可以指定特定的字體,如「Times New Roman」或我可以指定字體系列名稱,如「Times」。哪裏定義了字體系列?

它在哪裏定義「Times New Roman」是「Times」字體系列中的字體之一,還是僅僅基於名稱匹配?

+0

https://developer.mozilla.org/en-US/docs/Web/CSS/font-family –

+0

我已經閱讀此頁,我看不出它如何回答我的問題。 – Monkeybrain

回答

0

由於W3C指定

有兩種類型的字體家族名:

  • 家族的名字 - 一個字體家族的名稱,如「時代」,「快遞」, 「arial」等。

  • generic-family - 通用族的名稱,如「serif」,「sans-serif」,「cursive」,「fantasy」,「monospace」。

所以,是的,如果你想用「泰晤士報」的家庭,你可以只指定「泰晤士報」,但如果你想使用家庭內部特定的字體,你必須輸入完整的名稱的字體(與您所說的字體文件中包含的名稱相匹配)。

編輯: 一個實際的例子是Times Family,它包含多個字體。如果你沒有指定任何(所以font-family:「Times」),那麼將會選擇一個「默認」的(我猜是具有正常體重的那個),否則如果你設置了font-family:「Times Semibold」將使用字體。

編輯2:Source

  1. 用戶代理使得(或訪問)相關CSS所有這些的UA是知道的字體的2.1特性的數據庫。如果有兩個字體具有完全相同的屬性,則用戶代理會選擇其中一個。
  2. 在給定的元素和該元素中的每個字符中,UA組裝適用於該元素的字體屬性。使用完整的一組屬性,UA使用'font-family'屬性來選擇一個暫定的字體系列。根據每個房產描述的匹配標準對其餘房產進行家庭測試。如果所有剩餘屬性都匹配,則表示給定元素或字符的匹配字體。
  3. 如果在步驟2處理的'font-family'中沒有匹配的字體,並且在字體集中存在下一個替代'font-family',則重複步驟2和下一個替代字體-家庭'。
  4. 如果存在匹配的字體,但它不包含當前字符的字形,並且在字體集中存在下一個替代「font-family」,則使用下一個替代字體重複步驟2 -家庭'。
  5. 如果在2中選擇的家族中沒有字體,則使用基於UA的默認「字體家族」並重復步驟2,使用默認字體中可以獲得的最佳匹配。如果使用這種字體不能顯示某個特定的字符,則UA可以使用其他方法爲該字符確定合適的字體。 UA應該將沒有合適字體的每個字符映射到由UA選擇的可見符號,最好是來自UA可用字體之一的「缺失字符」字形。
+0

這是一個有用的鏈接,但當然,如果我沒有安裝該供應商的「Times Family」版本,我仍然不知道我的機器上的哪些字體將與「Times」的字體系列相對應。我如何發現?字面上,每個字體都以「Times」開頭嗎? – Monkeybrain

+0

我相信它會回退到默認字體,但這可能由瀏覽器和操作系統來處理。 –

+0

謝謝 - 這是如何將諸如「時代」之類的「字體家族」映射到諸如「Times New Roman」之類的特定字體,當我想要了解文檔時。 – Monkeybrain