2013-02-24 24 views
6

的Internet Explorer 9和10不改變德國ES-捷思ß」(ß, 'SZ'),以 「SS」 正確使用CSS規則text-transform: uppercase;時。這是否簡單地沒有實現,或者它是一個錯誤,我可以通過手動方式不能替換所有的「ß」?使用'text-transform:uppercase'時,Internet Explorer不會將'ß'(ß/es-zed)更改爲'SS'。

+0

可能與本地化有關。假定該網站是德文的;你有沒有設置頁眉來指定語言? – Spudley 2013-02-24 20:38:39

+0

是的,使用UTF-8,文件也以UTF-8編碼,語言設置爲'「de」'。 – insertusernamehere 2013-02-24 22:02:24

回答

15

這是一項功能。 CSS 2.1沒有定義大寫和小寫的意思,而IE 9將U + 00DF LATIN SMALL LETTER SHARP S「ß」視爲大寫映射,所以它的大寫映射是U + 1E9E LATIN CAPITAL LETTER SHARP S「ẞ」它可能很難看到)。這發生在「標準模式」中;在怪癖模式中,IE 9將「ß」視爲自己的大寫映射。

特徵爲奇數,因爲正常方式是映射「SS」到「SS」和大寫「ẞ」幾年前加入了可選使用在的話是比較少的情況uppercased以便區分例如必須保留名稱Strauss和Strauß

CSS 3 Text Working Draft指定應根據Unicode應用大小寫映射,並將「ß」映射爲「SS」。如果它會成爲一個建議,那麼該功能將變成一個錯誤。

通常,在CSS中做大小寫映射是不可靠的。最好在適當情況下生成內容,如果需要的話,在服務器端執行映射。然後你可以分別處理任何特殊情況。你也可以使用客戶端JavaScript;在JavaScript中,大小寫轉換是支持Unicode的(JavaScript是全球化的少數幾個領域之一)。

+0

這是一個很棒的答案。非常感謝。 – insertusernamehere 2013-02-24 22:02:43

+0

讓馬添加一個問題。我想知道:大寫字體中的文本不是由搜索引擎處理的不同嗎?所以我很好奇所有標題都是大寫字母的頁面。當文本已被預處理時,這可能會產生問題嗎? – insertusernamehere 2013-02-24 22:10:51

+0

@insertusername在這裏,對於這個問題,你可能希望打開一個新的問題,但目前的搜索引擎似乎是無情的。儘管如此,他們可能無法將ß和ẞ等同爲對等,對SS和SS。我會在客戶端做一些事情。 – 2013-02-25 07:20:16

相關問題