CSS之字體

字體族

字體族使用font-family 屬性聲明的。適用于所有元素。
當我們想要對文檔中的字體進行設(shè)置時,就可以通過font-family這個屬性。通過這個屬性,我們可以指定字體。比如:

p {
    font-family:Georgia;
}

設(shè)置之后,用戶代理會使用Georgia字體顯示文檔中所有的p元素。如果用戶代理沒有找到Georgia字體,那么就會忽略該字體使用默認字體。
因此,為了防止用戶代理中無我們設(shè)置的字體類型從而使用默認樣式,建議始終在font-family規(guī)則中指定通用字體族。這樣相當于提供一種后備機制,在用戶代理找不到匹配的字體時,選擇一個字體代替。

p {
    font-family: Arial, sans-serif;
}

我們可以設(shè)置多款字體,各個字體之間使用逗號間隔。對于逗號間隔的多個字體族,用戶代理會按照所列的順序查找字體。直到找到用戶代理支持的或者是最后任意一款通用字體族中的字體。

如果一個字體名稱中存在空格,如New York,或在字體名稱中有符號,如#,$, 則在使用時要把該字體名稱放在引號里。

p {
    font-family: Wedgie, 'Karrank%' sans-serif;
}

如果沒有引號,那么用戶代理可能會忽略Karrank%字體。但是注意把帶有引號的字體名稱放在引號里不是強制要求,只是推薦做法。但是如果字體族的名稱和font-family中的關(guān)鍵字同名,則必須要加引號

p {
    font-family:Author, "cursive", cursive;
}

正如上面,名為"cursive"的字體,他的名字一定要加上引號,這樣才能和關(guān)鍵字cursive區(qū)分開。

如果把通用字體族的名稱,如serif 放在引號中,用戶代理就會假設(shè)你設(shè)置的是一款字體的名稱,而不是指通用字體族。

@font-face規(guī)則

CSS中支持我們使用自定義的字體,并通過@font-face這一規(guī)則實現(xiàn)。

@font-face是惰性加載字型的。這表明,僅當需要使用指定的字型渲染文本時,才會加載,否則不加載。

定義字體的全部參數(shù)都寫在@font-face{ }結(jié)構(gòu)中,這些參數(shù)稱為描述符,其格式和平常的樣式規(guī)則一樣,為:descriptor: value;的形式。
有兩個必須的參數(shù):font-family和 src

  • 此處的font-family和上面的就有些不同了,此處的是字體族描述符,上面的則是字體族屬性。簡單理解,此處的font-family用于定義自定義的字體的名稱,上面的font-family則是用于引用,為文本應(yīng)用字型。

  • src為定義的字型提供一個或多個源。對于有多個源,各個源之間使用逗號間隔。對于具有以逗號間隔的多個源來說,一旦用戶代理無法從第一個源下載,就會嘗試從下一個源進行下載。字型的源可以指向任何URI,不過有個限制:字型必須和樣式表同源。因此,不能把src指向別人的網(wǎng)站,下載別人的字體。

    • format() 如果想告訴用戶代理所使用的字體是什么格式的,可以使用可選的format()
        @font-family {
            font-family: "Switaa";
            src:url("Switaa.otf") format("opentype");
    }
    
      這樣做的好處是可以讓用戶代理跳過不支持的字體格式,加快加載速度。
    

    format()還可以為不帶有常規(guī)擴展名的字體文件指定格式,以防用戶代理不識別。

    @font-family {
        font-family: 'Switee';
        src:url("Switee.otf") format('opentype'),
            url("Switee.true") format('truetype');
    }
    
    • local() 使用local()可以指定安裝到用戶設(shè)備中的字體族名稱。(可以是多個)
    @font-face {
        font-family:"Switee";
        src:local("Switee"),
            local("SwiteeADF");
    }
    

除了必選的font-family和src描述符外,還有幾個可選的描述符。

描述符 默認值 說明
font-weight normal 區(qū)分不同的字重
font-style normal 區(qū)分常規(guī)、斜體和傾斜字體
font-stretch normal 區(qū)分不同的字符寬度
font-variant normal 區(qū)分眾多字型變體
font-feature-settings normal 直接訪問OpenType的低層特性
unicode-range U+0-10FFFF 定義直接字體中可用的字符范圍

字重 font-weight

取值:normal bold bolder lighter 100 200 300 400 500 600 700 800 900
一般來說,字重越大,字體越黑,越粗。
字重的工作方式:

字重分為九級。100是最細的,900是最粗的。
但是,CSS規(guī)范只是說,每個數(shù)字對應(yīng)的權(quán)重至少和前面的數(shù)字具有相同的字重。因此,100、200、300、400可能對應(yīng)于同樣細的字體;500,600對應(yīng)于同樣粗的字體;700、800、900則對應(yīng)同樣較粗的字體。只要后面的數(shù)字關(guān)鍵字對應(yīng)的粗細不必前面的數(shù)字關(guān)鍵字細就行。

400 對應(yīng)normal , 700對應(yīng)于bold.
如果給定字體族中字重的等級少于9級,用戶代理會以以下方式填補空缺:

  • 如果500未分配,與400對應(yīng)的字重一樣。
  • 如果300未分配,則查找相較于400細的那個變體,如果沒有,則字重和400一樣。200和100也是這樣處理的。
  • 如果600未分配,將其對應(yīng)于較500黑的那個變體。如果沒有,則字重與500一樣,700,800和900也是這樣處理的。

字號font-size

字號的取值可以是絕對值、百分數(shù)、em、長度單位。
絕對值為:xx-small , x-small , small , medium , large , x-large , xx-large.

字形font-style

normal 、italic(斜體)、oblique(傾斜體)

自動調(diào)整字號font-size-adjust

有兩個因素影響字體是否清晰:字號和x高度。
x高度除以字號得到的結(jié)果稱為高寬比值。字號越大,寬高比值越小,字體越模糊;反之,字體越清晰。而font-size-adjust用于改變字體族間的寬高比值。
計算公式:

設(shè)定的font-size值 * (font-size-adjust值 / 字體的寬高比值 ) = 調(diào)整后的font-size

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容