你真的了解font-weight嗎?

1.png

font-weight我們很多人都用過雷则,甚至經(jīng)常用蒿讥,但你們真的了解font-weight嗎挂绰?今天我?guī)Т蠹疑钊肓私庖幌耭ont-weight

問題提出

font-weight的屬性值有100项乒、200啰劲、300、400檀何、500、600猖辫、700、800砚殿、900和normal啃憎、bold、lighter似炎、bolder,它們的區(qū)別是贩毕?

認(rèn)識font-weight

根據(jù)W3C Fonts節(jié)章的規(guī)范標(biāo)準(zhǔn)仆嗦,可知:

2.png

font-weight可取值:100~900和normal、bold谆甜、bolder榔昔、lighter。

100~900礼搁、normal台盯、bold

如果字體使用九階有序數(shù)值100~900來劃分其字重(字體的粗細(xì)度)浴讯,那么樣式指定的font-weight屬性值與字體的字重則一一對應(yīng)。并且normal等價于400榆纽,bold等價于700。

但實(shí)際上亮元,我們一般遇到的字體很多時候都是使用一些通用的詞描述劃分其字重唠摹,如下所示奉瘤。

常見的字重數(shù)值大致對應(yīng)的字重描述詞語:

· ? ?100 - Thin

· ? ?200 - Extra Light (Ultra Light)

· ? ?300 - Light

· ? ?400 - Regular (Normal勾拉、Book藕赞、Roman)

· ? ?500 - Medium

· ? ?600 - Semi Bold (Demi Bold)

· ? ?700 - Bold

· ? ?800 - Extra Bold (Ultra Bold)

· ? ?900 - Black (Heavy)

為什么說大致對應(yīng)呢卖局?在有些字庫下是有差異的,比如在Adobe Typekit字庫中對字重描述的劃分列表中砚偶,它列出Heavy指的是800而不是900染坯。另外,在我們?nèi)粘J褂玫腜hotoshop和Sketch里面单鹿,Ultra Light是100,而Thin是200劲妙。

并且,字體所擁有的字重的數(shù)量實(shí)際上很少存在滿足有9個字重剛好跟100~900的CSS字重一一對應(yīng)的情況涛舍,通常字體擁有的字重數(shù)量為4至6個唆途。

不必?fù)?dān)心,起碼400和700對應(yīng)的字重至少是每種字體必備的没佑,譬如常見的 Arial温赔、Helvetica、Georgia等等陶贼,只有400(normal)和700(bold)。

bolder痹屹、lighter

bolder枉氮、lighter表示其字重值是基于從其父元素繼承而來的字重計(jì)算所得的,與normal楼肪、bold所代表的字重并無關(guān)系惹悄。

其值通常是根據(jù)下表計(jì)算而得的:

form1.png

字體匹配算法

在上面我們已經(jīng)提到泣港,在很多情況下,字體并不是以九階數(shù)值來劃分的爷速,并且其含有的字重數(shù)量是不一的,通常情況下為4-6個莉给。

此時,就會出現(xiàn)樣式指定的字重數(shù)值在字體中找不到直接對應(yīng)的字重徐矩,那瀏覽器是如何解決的呢叁幢?

Bingo!

那就是要靠字體匹配算法來解決鳞骤。其中關(guān)于font-weight部分是這么提及到的:

如果指定的font-weight數(shù)值黍判,即所需的字重,能夠在字體中找到對應(yīng)的字重顷帖,那么就匹配為該對應(yīng)的字重贬墩。否則,使用下面的規(guī)則來查找所需的字重并渲染:

· ? ?如果所需的字重小于400陶舞,則首先降序檢查小于所需字重的各個字重吊说,如仍然沒有优炬,則升序檢查大于所需字重的各字重雅宾,直到找到匹配的字重葵硕。

· ? ?如果所需的字重大于500懈凹,則首先升序檢查大于所需字重的各字重,之后降序檢查小于所需字重的各字重介评,直到找到匹配的字重。

· ? ?如果所需的字重是400寒瓦,那么會優(yōu)先匹配500對應(yīng)的字重杂腰,如仍沒有,那么執(zhí)行第一條所需字重小于400的規(guī)則喂很。

· ? ?如果所需的字重是500,則優(yōu)先匹配400對應(yīng)的字重官还,如仍沒有毒坛,那么執(zhí)行第二條所需字重大于500的規(guī)則。

理解與運(yùn)用

下面我們通過官方例子和實(shí)際測試來好好理解這個匹配算法規(guī)則屯伞。

官方例子

W3C規(guī)范標(biāo)準(zhǔn)中給出這么一個例子:

font2.jpg

注解:灰色標(biāo)記的是字體中缺少的字重劣摇,而黑色則是字體擁有的字重弓乙。


基于匹配算法規(guī)則,看圖理解所得:

Figure 15.圖指的是

form2.png

拿font-weight: 300;來說勾习,字體中沒有可以直接匹配的字重懈玻,那么300小于400,則根據(jù)第一條規(guī)則艺栈,先降序查找匹配湾盒,但是都沒有可匹配的200、100毅人,那么升序查找為400,結(jié)果可匹配堰塌。

Figure 16.圖指的是

form3.png

這里需要注意的是场刑,填空值500表現(xiàn)的是300的字重,而不是600的字重铐懊。

為什么呢瞎疼?根據(jù)結(jié)果表現(xiàn),我們可以反推出茅茂,字重在瀏覽器去渲染時早已經(jīng)按照算法去一一匹配好太抓。也就是,400匹配的字重在500匹配之前已經(jīng)匹配好了(說起來有點(diǎn)拗口走敌,大家可以根據(jù)Figure.16的例子體會下)掉丽。

其余的,我就不多解釋了捶障,大家可以根據(jù)結(jié)果檢查自己是否理解到位残邀。

總結(jié)

根據(jù)以上的研究柑蛇,可以總結(jié)出三點(diǎn):

1、通常情況下空免,一個特定的字體僅會包含少數(shù)的可用字重盆耽。若所指定的字重不存在直接匹配扼菠,則會通過字體匹配算法規(guī)則匹配使用鄰近的可用字重坝咐。這也就是為什么我們有時候使用特定字重時沒有“生效”,看起來跟其它字重差不多的原因所在秧饮。

2泽篮、在實(shí)際中,最為常用的字重是normal和bold泼各。我個人認(rèn)為400亏拉、700是等效于normal、bold的弱贼,無論哪一種表示方法都沒有關(guān)系磷蛹,主要是個人習(xí)慣問題。

3庇勃、但是槽驶,推薦使用數(shù)值替代lighter、bolder罕拂,因?yàn)檫@涉及到繼承計(jì)算的問題全陨,用數(shù)值的話則會更為清晰明了。

本?文轉(zhuǎn)載自:凹凸實(shí)驗(yàn)室

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末柿菩,一起剝皮案震驚了整個濱河市雨涛,隨后出現(xiàn)的幾起案子懦胞,更是在濱河造成了極大的恐慌躏尉,老刑警劉巖后众,帶你破解...
    沈念sama閱讀 207,113評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件吼具,死亡現(xiàn)場離奇詭異,居然都是意外死亡拗盒,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,644評論 2 381
  • 文/潘曉璐 我一進(jìn)店門痊臭,熙熙樓的掌柜王于貴愁眉苦臉地迎上來广匙,“玉大人恼策,你說我怎么就攤上這事》滞伲” “怎么了狮斗?”我有些...
    開封第一講書人閱讀 153,340評論 0 344
  • 文/不壞的土叔 我叫張陵,是天一觀的道長折砸。 經(jīng)常有香客問我沙峻,道長,這世上最難降的妖魔是什么睹逃? 我笑而不...
    開封第一講書人閱讀 55,449評論 1 279
  • 正文 為了忘掉前任沉填,我火速辦了婚禮佑笋,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘猎荠。我一直安慰自己蜀备,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,445評論 5 374
  • 文/花漫 我一把揭開白布输虱。 她就那樣靜靜地躺著脂凶,像睡著了一般。 火紅的嫁衣襯著肌膚如雪亭病。 梳的紋絲不亂的頭發(fā)上嘶居,一...
    開封第一講書人閱讀 49,166評論 1 284
  • 那天邮屁,我揣著相機(jī)與錄音,去河邊找鬼樱报。 笑死迹蛤,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的盗飒。 我是一名探鬼主播逆趣,決...
    沈念sama閱讀 38,442評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼抖所!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起暴匠,我...
    開封第一講書人閱讀 37,105評論 0 261
  • 序言:老撾萬榮一對情侶失蹤傻粘,失蹤者是張志新(化名)和其女友劉穎弦悉,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體稽莉,經(jīng)...
    沈念sama閱讀 43,601評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡肩祥,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,066評論 2 325
  • 正文 我和宋清朗相戀三年混狠,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片将饺。...
    茶點(diǎn)故事閱讀 38,161評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡予弧,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出掖蛤,到底是詐尸還是另有隱情蚓庭,我是刑警寧澤,帶...
    沈念sama閱讀 33,792評論 4 323
  • 正文 年R本政府宣布垢袱,位于F島的核電站港柜,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏爽锥。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,351評論 3 307
  • 文/蒙蒙 一贸辈、第九天 我趴在偏房一處隱蔽的房頂上張望肠槽。 院中可真熱鬧奢啥,春花似錦、人聲如沸寂纪。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,352評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至量承,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間拿穴,已是汗流浹背忧风。 一陣腳步聲響...
    開封第一講書人閱讀 31,584評論 1 261
  • 我被黑心中介騙來泰國打工狮腿, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人蚤霞。 一個月前我還...
    沈念sama閱讀 45,618評論 2 355
  • 正文 我出身青樓昧绣,卻偏偏與公主長得像,于是被迫代替她去往敵國和親拖刃。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,916評論 2 344

推薦閱讀更多精彩內(nèi)容

  • 請各位讀者添加一下作者的微信公眾號央碟,以后有新的文章亿虽,將在微信公眾號直接推送給各位苞也,非常感謝。 如果您覺得這篇文章還...
    MR_LIXP閱讀 2,800評論 1 9
  • 深入理解傅里葉變換Mar 12, 2017 這原本是我在知乎上對傅立葉變換收毫、拉普拉斯變換殷勘、Z變換的聯(lián)系?為什么要進(jìn)...
    價值趨勢技術(shù)派閱讀 5,739評論 2 2
  • 1.塊級元素和行內(nèi)元素 塊級(block-level)元素输拇;行內(nèi)(內(nèi)聯(lián)痒玩、inline-level)元素。 塊元素的...
    饑人谷_小侯閱讀 1,985評論 1 4
  • 學(xué)習(xí)CSS的最佳網(wǎng)站沒有之一 http://www.w3school.com.cn/tags/index.asp ...
    Amyyy_閱讀 1,030評論 0 1
  • 一群基督徒要走遠(yuǎn)路,出發(fā)前草讶,天使向他們顯現(xiàn),并告訴他們說坤溃,“每人都要背一把梯子嘱丢,因?yàn)槁飞峡隙ㄓ杏玫弥牡胤健越驻!庇谑?..
    海王星1984閱讀 517評論 0 1