即使使用Web字体,假设font-weight:normal和font-weight:400是否相同仍然是合理的吗?
答案 0 :(得分:3)
在font-weight
的值中,normal
按定义表示400
。这不依赖于字体。
使用@font-face
,有可能作弊,例如通过将字体表示为具有正常权重(通过默认font-weight
,或通过将其设置为normal
或400
),即使字体实际上是粗体(或轻或其他)。 Fontsquirrel @ font-face生成器执行此操作:它有效地将每个字体定义为字体系列。例如:
/* Generated by Font Squirrel (http://www.fontsquirrel.com) on January 22, 2013 */
@font-face {
font-family: 'source_sans_probold';
src: url('sourcesanspro-bold-webfont.eot');
src: url('sourcesanspro-bold-webfont.eot?#iefix') format('embedded-opentype'),
url('sourcesanspro-bold-webfont.woff') format('woff'),
url('sourcesanspro-bold-webfont.ttf') format('truetype');
font-weight: normal;
font-style: normal;
}
这意味着元素的font-weight
值可能为400
,即使实际使用的字体是粗体设计。
这与400
与normal
的使用无关,而且不仅仅是字体粗细。 FontSquirrel使用font-style
播放相同的游戏。
答案 1 :(得分:1)
这可能不是明确的答案,但现在必须要做 - 我在Google网络字体上浏览了整套当前的617种字体。从我可以看到,Normal总是400.所有当前字体指定正常,400。
我应该添加的一件事 - 有一些WOFF字体,例如打开Sans Condensed,实际上根本没有“正常”风格。但是,这不应该打破Normal = 400的假设。
这是Chrome的一个有趣的问题。它默默地用font-weight:bold替换font-weight:700。它不会尝试使用其他字体权重。即便如此,如果您依赖于数值,最好进行一项无声测试,以进行必要的替换。
的内容var sample = $('#fontSampleA');
var fontwt = sample.css('font-weight');
fontwt = ('normal' == fontwt)?400:(('bold' == fontwt)?700:(('book' == fontwt)?300:fontwt));
以防万一未来版本开始尝试进行更多无声的“智能转换”。