比方说,我们定义了一个font-family
使用@font-face
使用:在CSS @ font-face中,字体权重不是指定用于此字体的重量,而是与3种字体重量“匹配”?
@font-face {
font-family: 'Roboto';
font-style: normal;
font-weight: 900;
src: local('Roboto'), local('Roboto-Regular'), url(https://fonts.gstatic.com/s/roboto/v15/oMMgfZMQthOryQo9n22dcuvvDin1pK8aKteLpeZ5c0A.woff2) format('woff2');
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2212, U+2215, U+E0FF, U+EFFD, U+F000;
}
看来,上述font-weight
没有指定什么重量,如果用户指定font-family: Roboto
使用该字体文件来呈现,而是,它是“匹配”当@font-face
指定相同名称时使用的字体文件。
例子:
如果@font-face
里面,我们指定400
的font-weight
,现在的文本呈现在谷歌浏览器(版本48.0,我可以得到几乎相同的结果,使用当前的Firefox在这个问题jsfiddles 44.0.2),与不被所述光能够被轻,但通过使“双印刷”字型或像素的“双宽度”的招数大胆一个可能是由粗体:
https://jsfiddle.net/0vL8m9bj/
如果我们制作font-weight
就是900
作出@font-face
,则文本的所有3条线变成常规:
https://jsfiddle.net/0vL8m9bj/1/
所以我们可以看到,900
不指定要显示什么,使用该字体文件。
那么@font-face
里面font-weight
有什么用?
如果我们使用https://www.google.com/fonts#UsePlace:use/Collection:Roboto并把这个行:
<link href='https://fonts.googleapis.com/css?family=Roboto:400,700,900,300'
rel='stylesheet' type='text/css'>
这实际上为文件加载一些CSS定义到浏览器:
/* latin */
@font-face {
font-family: 'Roboto';
font-style: normal;
font-weight: 300;
src: local('Roboto Light'), local('Roboto-Light'), url(https://fonts.gstatic.com/s/roboto/v15/Hgo13k-tfSpn0qi1SFdUfZBw1xU1rKptJj_0jans920.woff2) format('woff2');
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2212, U+2215, U+E0FF, U+EFFD, U+F000;
}
/* latin */
@font-face {
font-family: 'Roboto';
font-style: normal;
font-weight: 400;
src: local('Roboto'), local('Roboto-Regular'), url(https://fonts.gstatic.com/s/roboto/v15/oMMgfZMQthOryQo9n22dcuvvDin1pK8aKteLpeZ5c0A.woff2) format('woff2');
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2212, U+2215, U+E0FF, U+EFFD, U+F000;
}
/* latin */
@font-face {
font-family: 'Roboto';
font-style: normal;
font-weight: 900;
src: local('Roboto Black'), local('Roboto-Black'), url(https://fonts.gstatic.com/s/roboto/v15/mnpfi9pxYH-Go5UiibESIpBw1xU1rKptJj_0jans920.woff2) format('woff2');
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2212, U+2215, U+E0FF, U+EFFD, U+F000;
}
/* other languages omitted here */
现在我们可以看到3个“砝码” :
https://jsfiddle.net/0vL8m9bj/5/
,但是,它不是由CL最匹配的数字 - 它看起来像“轻”,“正常”和“粗体”类别匹配,因为如果它是301
,它将不会与299
匹配,即使认为它非常接近299
,但将匹配与400
或500
:
https://jsfiddle.net/0vL8m9bj/6/
的699
也不会700
匹配,但将匹配400
。
我们也可以看到,如果我们扭转@font-face
的font-weight
,并使用bold
,normal
,lighter
为样式的文本,然后bold
将使用光字体文件,并lighter
将使用深色字体文件:
https://jsfiddle.net/0vL8m9bj/10/
然而,一个奇怪的是,如果700
在最后@font-face
到701
改变,现在所有的3条线将成为大胆:
https://jsfiddle.net/0vL8m9bj/7/
所以这真的很奇怪。看起来规则是:除了最后一个例子外,与3类权重相匹配。
一个更奇怪的事情:如果.section1
是,它显示光:
https://jsfiddle.net/0vL8m9bj/8/
但要font-weight: 299
- 这意味着更轻,现在看来是大胆:
https://jsfiddle.net/0vL8m9bj/9/
因此,使它更轻便使它大胆。
那么@font-face
里面font-weight
的规则是什么?
将HTML标签了。 :)不仅css,css3,字体 – AVI
我会惊讶,如果这是特定于HTML。你知道我们没有的东西吗?如果是这样,我邀请你发布答案。你提到的' – BoltClock