首先,抱歉我的英语不好。
我遇到了一个非常奇怪的错误,它只发生在Internet Explorer 9中。
这是代码:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<style type="text/css">
html {
direction: rtl;
}
ul li {
list-style-image: url(v.gif);
direction: rtl;
}
</style>
</head>
<body>
<ul>
<li>I</li>
<li>hate</li>
<li>IE 9</li>
</ul>
</body>
</html>
结果如下:
用V!看看图像的方向。
您可以在我的网站中看到错误:www.usf.co.il
BTW:它只发生在“方向:rtl”。
有人知道这个bug吗? 我该如何解决?
答案 0 :(得分:4)
这确实是一个奇怪的现象,它可以被归类为一个bug,因为CSS规范中没有任何内容表明这样的镜像镜像。
这种现象似乎只发生在IE 9的“标准模式”中,而不是“Quirks模式”或以前的IE版本中。
direction
上的CSS 2.1 spec子句说:“此属性指定块的基本写入方向以及Unicode双向算法的嵌入和覆盖方向(请参阅'unicode-bidi')。此外,它还指定了诸如表格列布局的方向,水平溢出的方向,块中不完整的最后一行的位置,以及“text-align:justify”的情况。“
虽然配方有些松散,但我认为你不能在镜像中阅读。 “嵌入方向”这一表达方式与双向嵌入有关(RTL文本中的LTR文本,反之亦然),而非图像等嵌入内容。
Microsoft documentation of IE似乎不包含对此功能的任何引用。
该功能可能是某人支持RTL写入的想法,就像镜像一些字符一样。这不是一个疯狂的想法,但它有害,因为它不是基于规范,而是偏离浏览器实践。
我担心这是一个难以规避的错误。使用浏览器嗅探并将镜像图像提供给IE 9(以便在镜像时,您获得正确的图像)听起来很糟糕,并且您还需要一种方法来区分“标准模式”。
答案 1 :(得分:0)
我遇到了同样的问题。我目前的解决方案是创建反转图像并在HTML
中执行以下操作<!--[if IE 9]>
<style type="text/css">
ul li {list-style-image: url("v_reversed.gif");}
</style>
<![endif]-->
任何人都知道IE10会发生什么?