希腊文本IE8问题与CSS文本转换

时间:2014-02-28 07:34:21

标签: internet-explorer-8 webfonts uppercase css

有一个包含希腊文字的网站,其中我有这个div,我已应用了样式text-transform:uppercase

<div class="greek" style="text-transform:uppercase;">Υπηρεσίες</div>

小写: Υπηρεσίες

转换为大写: ΥΠΗΡΕΣΊΕΣ

所以它在IE8中的确是以大写字母显示文字除了一个字母“ς”

所以在IE8上它显示如下: ΥΠΗΡΕΣΊΕς

这适用于所有浏览器(FF,Chrome,IE9,IE10,IE11),但不适用于IE8。

嗯,它将“σ”转换为“Σ”,但不会改变“ς”

是否有人为此提供任何CSS解决方案。?

2 个答案:

答案 0 :(得分:4)

这是浏览器中的错误/缺陷。根据规范,text-transform必须应用Unicode案例映射规则,其中包括将最终的小sigma“ς”映射到大写的sigma“Σ”。 (他们应该 以小写映射的方式做大写到小写映射,将word-final“Σ”映射到“ς”,但这是一个不同的问题,而且更复杂。)但是有些浏览器仍然无法做到这一点。

CSS中没有任何内容可以解决这个问题。客户端,你可以做的是拥有通过在内容中进行转换来修复此问题的JavaScript代码。但是在服务器端做它会好得多。如果您希望以这种方式显示内容,或者(如果它来自外部源),请使用您正在使用的任何服务器端工具进行映射。

请注意,当您尝试使用CSS大写希腊文时,您还有其他问题。正如屏幕截图所示,带有tonos“ί”的小iota已经转换为大写“Ί”的首都iota。当大写单词时希腊规则不正确; tonos(尖锐的口音)应该省略。大多数浏览器都没有这样做(Firefox确实如此)。

答案 1 :(得分:0)

找到解决方案时,我将要问同样的问题:

对于大多数语言,您只需打text-transform:uppercase就可以了。对于希腊语,您必须declare the language in the HTML,因此您应该在您的div中添加lang="el",它会起作用。

例如,而

<p>Διάβασμα του Καφέ</p>

成为ΔΙΆΒΑΣΜΑΤΟΥΚΑΦΈ

<p lang="el">Διάβασμα του Καφέ</p>

正确转换为ΔΙΑΒΑΣΜΑΤΟΥΚΑΦΕ