2013-02-27 66 views
0

我已經嵌入字體到我的網頁,並隨機在div中使用font-style = italic和font-weight = 700。嵌入字體B和我不在safari上工作3.2

我的@ 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/arimo_bold_italic.ttf') format('truetype'); 
    font-weight: normal; 
    font-style: normal; 
} 

雖然字體樣式和字體重量增加是在所有的瀏覽器工作正常,它似乎並沒有在Safari 3.2給喜歡怪異的結果工作風格和重量只是隨機應用。

任何解決方案?

回答

0

您正在將字體指定爲正常重量,常規(不是斜體)。這是可能的,並且經常用於克服一些瀏覽器限制,並且這也是FontSquirrel在其生成的CSS文件中使用的方式。但是它有其影響。

在這種情況下,單獨font-family: Arimo產生粗斜體阿里莫,因爲這是你如何定義的名稱Arimo。對於瀏覽器來說,Arimo只是一個普通重量的常規字體,所以如果你問,在CSS或間接例如通過bi標記,它將以粗體或斜體使用,大多數瀏覽器將使用這種字體。

根據CSS 2.1 font matching algorithm,當請求斜體(或粗體斜體)時,常規臉部不被視爲匹配。這意味着瀏覽器應該回退到其默認字體,除非您的規則指定了輔助字體。沒有瀏覽器實際上是這樣做的:Safari通過算法將傾斜字形產生「合成斜體」,而大多數其他瀏覽器只使用常規字體(即它們被認爲是規則的字體,因爲它是以這種方式聲明的)。在CSS3中,這是要改變的,以便大多數瀏覽器的行爲成爲常態。

因此,這是一個混亂的業務,以避免混亂,使用這些方法之一:

a)宣佈每個字體的臉作爲一個家庭自己的,因爲經常和體重正常的,因爲你有在這裏完成,並且做而不是應用font-weightnormal' or字體樣式values other than normal`以外的值直接或間接(注意許多HTML元素產生斜體或粗體b默認值)以這種字體文本。

b)宣佈每個字體的臉,在家庭中的字體,與font-weightfont-style@font-face邏輯的方式,並使用字體系列以正常的方式,宣告font-weight: bold當你要大膽的等等,這是谷歌如何網頁Google託管時可以使用字體。

P.S. 「@ font-face」規則沒有提到WOFF格式文件,這在瀏覽器支持時是可下載字體的最佳格式,這很奇怪。生成器通常也生成它,並將其包含在規則中。