Css 嵌入式字体B和I不适用于safari 3.2
我将字体嵌入到我的网页中,并在div中随机使用font style=italic和font-weight=700 我的@font-face规则是:Css 嵌入式字体B和I不适用于safari 3.2,css,safari,font-face,Css,Safari,Font Face,我将字体嵌入到我的网页中,并在div中随机使用font style=italic和font-weight=700 我的@font-face规则是: @font-face { font-family: 'Arimo'; src: url('fonts/arimo_bold_italic.eot'); src: url('fonts/arimo_bold_italic.eot?#iefix') format('embedded-opentype'),url('fonts/a
@font-face {
font-family: 'Arimo';
src: url('fonts/arimo_bold_italic.eot');
src: url('fonts/arimo_bold_italic.eot?#iefix') format('embedded-opentype'),url('fonts/arimo_bold_italic.ttf') format('truetype');
font-weight: normal;
font-style: normal;
}
虽然字体样式和字体权重添加在所有浏览器上都可以正常工作,但在Safari 3.2上似乎不起作用,会产生奇怪的结果,比如样式和权重只是偶尔随机应用
有解决方案吗?您将字体指定为正常重量、常规字体(非斜体)。这是可能的,通常用于克服某些浏览器限制,这也是FontSquirrel在其生成的CSS文件中使用的方式。但这也有其影响 在本例中,
font-family:Arimo
单独生成粗体斜体Arimo,因为这就是您定义名称Arimo
的方式。对于浏览器而言,Arimo
只是一种普通字体,因此如果您要求,在CSS中或通过b
或i
标记等间接方式,它将以粗体或斜体使用,大多数浏览器都会使用这种字体
根据CSS 2.1,当要求使用斜体(或粗体斜体)时,常规人脸不被视为匹配。这意味着浏览器应返回其默认字体,除非您的规则指定了辅助字体。实际上,没有浏览器能做到这一点:Safari通过算法倾斜字形生成“合成斜体”,而大多数其他浏览器只使用常规字体(即,他们认为是常规字体,因为它是以这种方式声明的)。在CSS3中,这是要更改的,以便大多数浏览器的行为成为规范
因此,这是一个混乱的业务,为了避免混乱,请使用以下方法之一:
a) 像您在这里所做的那样,将每个字体面声明为其自己的一个系列,作为常规和正常的权重,并且不直接或间接地将字体权重
值正常值以外的值或字体样式
值正常值以外的值应用于此类字体中的文本(请注意,许多HTML元素产生斜体或粗体b默认值)
b) 将每个字体面声明为系列中的字体,在@font-face
中以逻辑方式设置font-weight
和font-style
,并以正常方式使用字体系列,在需要加粗时声明font-weight:bold
等。这就是Google Web字体在由Google托管时的工作方式
另外,奇怪的是,“@font-face”规则没有提到WOFF格式的文件,当浏览器支持WOFF格式时,WOFF格式是可下载字体的首选格式。生成器通常也会生成它,并将其包含在规则中