2016-03-29 21 views
2

this demo on JSFiddle中,Safari在鏈接到Bootstrap時顯示出一個奇怪的soft hyphenation錯誤。當­­前面有字符fi時,出現一個奇怪的角色«Ṏ»(U+1E4E)。我甚至有雙變音看到了:Safari和bootstrap軟連字錯誤:發生了什麼?

Latin Capital Letter O With Tilde And Double Diaeresis

任何想法是怎麼回事? Safari supposedly支持­

+0

「的day_的_Weird軟斷字蟲」 - 這是嚴重的是什麼意思? – davidkonrad

+0

@davidkonrad問題是認真的意思,是的。如果您在iOS或Mac OS X上使用Safari,該錯誤應該是可重現的。我希望可以在jsfiddle上使用非正式標題。 – bjornte

回答

2

沸騰了你的測試用例後,貌似錯誤時纔會觸發(在引導的情況下),當事情被稱呼爲:

font-family: "Helvetica Neue", Helvetica; 
font-weight: 500; 

(當然的文本需要使用柔軟的連字符和「網絡連接」如您所述。)

您似乎遇到了WebKit Bug 150006 - REGRESSION(r182192): Ligatures do not interact correctly with SHY in some fonts,它已在WebKit r190891中修復。

因此,幸運的是,您的錯誤並未在WebKit的當前Nightly版本中重現(例如r198607)。不幸的是,蘋果還沒有發佈包含該修補程序的Safari版本。希望這個修復會將它變成OS X Safari 9.1(推測是Safari 9.2或10)的任何版本。

「fi」被字體引擎處理爲(潛在的)ligature,通常呈現爲使得「f」的橫條和「i」中的點合併成一條線段。這就是爲什麼你的測試用例中的其他字母組合沒有觸發錯誤;只有「fi」纔有可能成爲連字符,因此當字體引擎與一個軟連字符相鄰時,它會觸發字體引擎中的錯誤。

1

不幸的是,這個WebKit的bug在iOS 9.2.3的Safari中仍然存在。我在我的網頁上使用了一些網頁字體(例如Roboto Slab)。我的解決辦法是將「F」和之間的零寬度非木特殊字符,打破了連字「I」,例如:

f‌ilter