我想在我的網站上顯示Interrobang(‽)字符。它適用於所有桌面瀏覽器,但不會顯示在我的Android手機上。我已經嘗試了文字字符‽
和HTML實體‽
,但都不起作用。我已經將我的字符編碼聲明爲UTF-8。Interrobang在手機網站上不顯示
我創建了一個jsFiddle來演示我的問題。在桌面上,Interrobang應該顯示得很好;在我的手機上,它不起作用。
我怎樣才能讓這個角色顯示,而不必包含一個特殊的字體呢?
我想在我的網站上顯示Interrobang(‽)字符。它適用於所有桌面瀏覽器,但不會顯示在我的Android手機上。我已經嘗試了文字字符‽
和HTML實體‽
,但都不起作用。我已經將我的字符編碼聲明爲UTF-8。Interrobang在手機網站上不顯示
我創建了一個jsFiddle來演示我的問題。在桌面上,Interrobang應該顯示得很好;在我的手機上,它不起作用。
我怎樣才能讓這個角色顯示,而不必包含一個特殊的字體呢?
您提到的Wikipedia頁面Interrobang指出,「很少現代字體或字體包含interrobang字符的字形」。這是不準確的 - 例如,在PC上,通常至少包含Palatino Linotype字體,而在現代PC中,所謂的Microsoft C字體也包含它(請參閱font coverage上的Fileformat.info頁面)。但例如在Android中,通常只有Droid字體集合,並且它們沒有這個符號。
因此,通過@font-face
使用可下載的字體(網絡字體)將是唯一的方法, Androids會顯示這個字符(除了那些由用戶安裝了合適的額外字體的機器人,但這些不是你正在尋找的機器人)。
但是,除了使用圖像之外,還有一種解決方法是使用「?」和「!」字符以某種方式重疊。你可以做到這一點通過使用負號letter-spacing
或在聲明爲嵌入塊的元素中包含的字符上設置負邊距。不過,也許最好的拍攝是用定位:
<style>
.bang { position: relative; }
.excl { position: absolute; left: 0.1em; }
</style>
<span class=bang>?<span class=excl>!</span></span>
的0.1em
的值是一個猜測,但可能是一個相當不錯的一個。重點在於,在大多數字體中,「!」的前進寬度比「?」的前進寬度小,因此需要向左推一點以便適當地「重擊」問號。這個值似乎對Droid Sans和Arial都有效。
這個角色絕對不是日常使用。如果你的手機沒有顯示它,這意味着沒有人會將它添加到正在使用的字體中。
我不確定這裏發生了什麼。我正在使用Libre Baskerville,所以如果它顯示在桌面上,爲什麼不能在移動設備上使用? – LonelyWebCrawler 2013-02-16 04:42:07
非常感謝 - 我用'left:0.04em'實現了這個建議,經過一些調整後,它就像預期的那樣工作。 – LonelyWebCrawler 2013-02-16 16:54:35