【问题标题】:Non-English IE9 and CSS opacity非英语 IE9 和 CSS 不透明度
【发布时间】:2012-02-07 19:21:00
【问题描述】:

看下面的HTML代码:

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <meta http-equiv="X-UA-Compatible" content="IE=9" />
        <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    </head>
    <body>
        <div style="opacity:0.5">Hello World</div>
    </body>
</html>

在英语 IE9 上一切正常,“Hello World”div 以所需的 (50%) 不透明度显示,但在德语 IE9 上,div 被隐藏,通过查看“F12 开发人员工具”中的 DOM,我可以看到不透明度评估为 0 而不是 0.5。此外,在将带有小数部分的任何其他值分配给 opacity 属性后,会导致后者仅评估整数部分而忽略小数部分(即 opacity:22.34 评估为 22)。知道英文 IE9 和德文 IE9 之间有什么区别会导致这种奇怪的 CSS 行为,我该如何解决它(重要提示:我不想使用 filter:alpha 或 -ms-filter 等替代属性.)?

【问题讨论】:

  • 我会尝试使用opacity: 0,5(带逗号)作为解决方法(Chrome 中曾经存在类似的错误)。
  • 你确定是同一个版本号吗?您是否在相同的浏览器/文档模式下进行测试?
  • 我已经尝试过使用 opacity:0,5 (带逗号) - 它没有帮助。此外,在这两种浏览器上,我都使用 IE9 浏览器模式和 IE9 标准文档模式。
  • 可能无法修复它,但如果您使用 html5 文档类型,&lt;html&gt; 标签不需要xmlns="http://www.w3.org/1999/xhtml"

标签: css localization internet-explorer-9 opacity


【解决方案1】:

非常奇怪的行为:S

我能想到的唯一想法是德语和英语中使用的小数点。在英语中它是一个点 (0.5),在德语中是一个逗号 (0,5)。你可以试着把逗号打进去看看会发生什么。但如果这是问题所在,那就太奇怪了,因为我认为符号取决于 CSS 规范,而不是来自每个国家/地区使用的小数点。而且我还认为两个 IE 共享相同的核心,并且只有 L10n(本地化)更改。

或者看看两个 IE 是否是完全相同的版本(不仅是 9,而且是 9.whatever)。可能是某个版本的错误。

【讨论】:

  • CSS 规范不会因本地化而改变。例如,它不是英国的colour:,标点符号规则仍然遵循普通 CSS/JS/whatever 中使用的标准。否则,您永远无法针对外国访客进行优化。
  • 这两个 IE 都是带有“9.0.4 KB2618444”更新的“9.0.8112.16421”版本。唯一不同的是ProductID:英文:03553-918-5000002-85819,德文:03553-007-1403402-86915
  • 抱歉,不知道可能是哪个问题...当您更改逗号的点时,您是否清除了浏览器缓存?我知道@Nix 的规范是什么,但至少 duri 说这个错误曾经存在于 Chrome 中......
  • 将点更改为逗号无助于显示元素,但它有另一个效果 - 它从 F12 开发人员工具的样式列表中完全删除了 'opacity' 属性 - 这意味着 IE9根本不接受这种语法。
  • 芬兰版 IE 9 中不存在该错误(其版本和更新号与上图完全相同)。所以我想这是一个特定于德语版本的错误。 @Moshe 你能测试一下德语 IE 9 是否在标准模式下工作?我的意思是它可能是在 IE 9 标准文档模式下,但实际上在 IE 8 文档模式下工作(至少部分)。
猜你喜欢
  • 2011-02-02
  • 2012-09-09
  • 2015-03-31
  • 2018-11-15
  • 2015-09-20
  • 2011-02-24
  • 2013-05-01
  • 2011-02-03
  • 1970-01-01
相关资源
最近更新 更多