有一个包含希腊文字的网站,其中我有这个div,我已应用了样式text-transform:uppercase
。
<div class="greek" style="text-transform:uppercase;">Υπηρεσίες</div>
小写: Υπηρεσίες
转换为大写: ΥΠΗΡΕΣΊΕΣ
所以它在IE8中的确是以大写字母显示文字除了一个字母“ς”
所以在IE8上它显示如下: ΥΠΗΡΕΣΊΕς
这适用于所有浏览器(FF,Chrome,IE9,IE10,IE11),但不适用于IE8。
嗯,它将“σ”转换为“Σ”,但不会改变“ς”
是否有人为此提供任何CSS解决方案。?
答案 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>
正确转换为ΔΙΑΒΑΣΜΑΤΟΥΚΑΦΕ