【问题标题】:Greek text IE8 issue with CSS text-transform带有 CSS 文本转换的希腊文本 IE8 问题
【发布时间】:2014-04-01 02:13:04
【问题描述】:

有一个带有希腊文本的网站,其中我有这个 div,我应用了 text-transform:uppercase 样式。

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

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

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

所以它在 IE8 中的作用是它以大写显示文本,除了一个字母 "ς"

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

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

它会将 "σ" 转换为 "Σ" 但不会转换 "ς"

有人对此有任何 CSS 解决方案吗?

【问题讨论】:

  • 这是字体问题,不是css问题
  • 如果您的网站以手持设备为目标,请不要费心去修复它。如果不是这样,IE8 用户正在一天天减少,他们中的大多数人都知道某些网站可能看起来与他们拥有“旧浏览器”不同。
  • @PellePenna:是的,真正的 IE8 用户正在下降,但对我们来说,我们必须解决它,因为根据分析,我们的许多客户确实使用 IE8。 pstenstrm:你有没有遇到过这样的错误。我尝试更改字体,但它不起作用..
  • 如果你不能在客户端修复它,试试服务器端,你肯定可以解决它(ASP或PHP)
  • 我有点想使用 JS 解决方案并在页面上添加不必要的负载。如果有其他解决方法,认为会很好。喜欢一些字体更改或一些 css 更改。

标签: internet-explorer-8 webfonts uppercase css


【解决方案1】:

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

在 CSS 中对此您无能为力。在客户端,你可以做的是让 JavaScript 代码通过内容转换来解决这个问题。但最好在服务器端进行。如果您希望以这种方式显示内容,请将内容全部写成大写,或者(如果它来自外部源),使用您正在使用的任何服务器端工具进行映射。

请注意,当您尝试使用 CSS 将希腊文本大写时,还会遇到其他问题。如屏幕截图所示,带有tonos“ί”的小iota已转换为带有tonos“Ί”的大写iota。大写单词时,希腊规则是不正确的;应该省略调音(重音)。大多数浏览器都没有做到这一点(Firefox 做到了)。

【讨论】:

    【解决方案2】:

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

    对于大多数语言,您只需敲击text-transform:uppercase 即可。对于希腊语,你必须 declare the language in the HTML,所以你应该将 lang="el" 添加到你的 div 中,它会起作用。

    例如,当

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

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

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

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

    【讨论】:

      猜你喜欢
      • 2012-03-15
      • 2013-10-03
      • 2014-01-20
      • 2013-02-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多