IE9上的奇怪错误:<ul>和rtl </ul>

时间:2012-06-11 17:49:09

标签: html css internet-explorer internet-explorer-9

首先,抱歉我的英语不好。

我遇到了一个非常奇怪的错误,它只发生在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>

结果如下:

IE 9 bug

用V!看看图像的方向。

您可以在我的网站中看到错误:www.usf.co.il

BTW:它只发生在“方向:rtl”。

有人知道这个bug吗? 我该如何解决?

2 个答案:

答案 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会发生什么?