2016-03-02 54 views
0

我使用的是檢查元素 Firefox的功能可確定在某個元素上使用哪種字體系列。 在我的實際案例中,我只能找到在規則窗格中經過的字體族定義。我認爲他們已經被另一個CSS規則覆蓋了更高的位置。但是font-family沒有定義在整個規則窗格中未被觸動。 向上,最多一個節目,如:firefox inspector中的所有css字體系列定義都通過

.helvetica-neue-websave { 
    font-family: "HelveticaNeue", "Helvetica Neue", Helvetica, Arial, Verdana, sans-serif 
} 

在另一方面,當我看着檢查員我看到的字體窗格中的字體家庭對我的元素是Helvetica Neue字體簡明大膽但我可以找不到,它在哪裏定義。

編輯:計算窗格指出它使用HelveticaNeue,「Helvetica Neue字體」,黑體,宋體,宋體,無襯線,但它絕對是濃縮版。

所以,任何人都可以指導我如何找到這個字體家族定義的位置? 它不在HTML本身中,也不在我在規則窗格中看到的任何CSS文件中。 希望我的問題是明確和對不起我的英語

+0

很可能是你提到的字體在CSS中,瀏覽器/系統無法識別,並且在瀏覽器發生錯誤時,瀏覽器用盡可能最接近的匹配替換丟失的字體 – RRR

+0

有時候這可能是一種痛苦。在Chrome上,有一個「計算」選項卡,顯示實際應用的規則。在你的情況下,它可能會被一些父元素覆蓋,而不一定是元素本身,這就是爲什麼你可能看不到它在你的元素中設置。 –

+0

也FF有這個計算表標籤,它表明使用「HelveticaNeue,'Helvetica Neue',Helvetica,Arial,Verdana,sans-serif」,但事實並非如此,因爲它使用「濃縮」版本。所以必須定義「Helvetica Neue Condensed Bold」(因爲它不是一個網絡安全的我猜)? – Tom

回答

0

你看到FONT-FAMILY是「Helvetica Neue字體簡明大膽」還是你看到用於FONT-FAMILY字體資源是「Helvetica Neue字體濃縮大膽「?因爲這是兩個完全不同的東西。聽起來像後者,在這種情況下:CSS會根據提供的名稱向瀏覽器詢問「字體」。

  1. 瀏覽器檢查它是否有任何明確的資源綁定(使用@ font-face),如果沒有,它會要求操作系統輸入與指定名稱CSS匹配的字體。
  2. 如果操作系統找不到它們,CSS會回退到下一個字體並再次嘗試。重複步驟1和2,直到資源耗盡。

在任何時候,瀏覽器或操作系統被允許去「是啊,我發現了一些」提供的名稱的資源,他們知道比賽「不夠好」,所以如果你問Helvetica Neue字體,以及OS兩端被問到這一點,那麼它可以去「哦,我在這裏有一個Helvetica Neue」,然後給瀏覽器Helvetica Neue Condensed。這是100%可接受的:這是「Helvetica Neue」的許多合法匹配之一,因爲這是實際的姓氏,而「Regular」,「Condensed」,「Thin」,「Oblique」等不是。

如果你不能接受開發,那麼你的CSS需要變得更加精確:要麼開始只接受'Helvetica Neue Regular',這是一個糟糕的計劃,要麼加載一個實際的字體,以便正確控制哪種字體會得到使用,沒有操作系統得到諮詢。特別是對於只有Mac用戶纔會安裝的字體(unix,linux和windows用戶都不需要:並且需要先購買它),並且在其他平臺上也有保證。

創建@font-face規則與所需的字體,用font-familyContentFont(所以,如果你想有一個不同的字體後,所有你所要做的就是更換src結合,在不改變任何內容CSS),然後點那到真正的.woff字體資源(沒有使用local()因爲再次,不保證你會得到你要求的,它可能會解決「夠好」,而對人眼來說絕對是錯誤的)

相關問題