4

首先,对不起我的英语不好。

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

用V看图像的方向!

你可以在我的网站上看到这个错误:www.usf.co.il

顺便说一句:它只发生在“direction:rtl”中。

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

4

2 回答 2

4

这确实是一个奇怪的现象,它可以被归类为一个错误,因为 CSS 规范中没有任何内容建议对图像进行这种镜像。

这种现象似乎只发生在“标准模式”的 IE 9 上,而不是“怪癖模式”或以前的 IE 版本。

CSS 2.1 规范条款direction说:“此属性指定 Unicode 双向算法的块的基本写入方向以及嵌入和覆盖的方向(参见 'unicode-bidi')。另外,在'text-align: justify'的情况下,它还指定了表格列布局的方向、水平溢出的方向、块中不完整的最后一行的位置等。”</p>

尽管公式有些松散,但我认为您无法将镜像读入其中。“嵌入方向”这一表述与双向嵌入(RTL 文本中的 LTR 文本,反之亦然)有关,而不是像图像这样的嵌入内容。

IE 的 Microsoft 文档似乎不包含对此功能的任何引用。

该功能可能是某人的想法,即支持 RTL 编写方式与镜像某些字符的方式大致相同。这不是一个疯狂的想法,但它是有害的,因为它不是基于规范并且它偏离了浏览器实践。

恐怕这是一个难以规避的错误。使用浏览器嗅探并向 IE 9 提供镜像(这样当它镜像时,您会得到正确的图像)听起来很糟糕,您还需要一种区分“标准模式”的方法。</p>

于 2012-06-11T18:16:34.117 回答
0

我遇到了同样的问题。我当前的解决方案是创建一个反转图像并在 HTML 中执行以下操作

<!--[if IE 9]>
<style type="text/css">
ul li {list-style-image: url("v_reversed.gif");}
</style>
<![endif]-->

有人知道IE10会发生什么吗?

于 2012-09-10T09:23:26.110 回答