2014-10-06 75 views
0

我正在使用web項目的「Quicksand」字體(http://www.google.com/fonts/specimen/Quicksand),我遇到了問題:該字體不存在²字符。我認爲它會以其他字體呈現(在Quicksand之後的font-family屬性中寫入),但事實並非如此。當我寫²時,唯一渲染的是一個空白區域。CSS Webfont不呈現缺失的字符

有沒有辦法通過其他字體渲染不支持的字符?

下面是使用CSS:

font-family: "Quicksand", Helvetica, Arial, sans-serif; 
+0

在一個範圍中包裝該字符並應用其他字體系列。 – 2014-10-06 07:52:28

回答

1

有流沙字體的錯誤:對於Unicode碼位U + 00B2華標二,它有一個空的字形。它的寬度是396個單位,因此它比字體中的普通SPACE(300個單位)更寬。另一個帶有類似問題的角色是U + 201A單低9報價標記「,」,它具有230個單位寬的空字形。

原則上,您可以通過在@font-face規則中使用unicode-range來規避該錯誤,以指定從不同字體獲取特定字符。但是,瀏覽器支持仍然過於有限(並且這種方法需要您託管字體文件,而不是從Google服務器使用它們)。

另一種可能性是編輯字體。這需要一個字體編輯器和版權所有者的許可(當然你還需要託管字體文件)。

第三種方法是將每個出現的「²」包含在span元素中,並將其設置爲font-family。請注意,這意味着混合來自不同字體的字形,這在排版時應該避免。

最後,考慮使用不同的字體。在SO上有關於Quicksand字體渲染問題的幾個問題。

+0

感謝您的長時間答覆。最後,我唯一的選擇是更改input/select/textarea元素的字體... – Ecorce 2014-10-06 13:46:40