html - IE9 : <ul> and rtl 上的奇怪错误

标签 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

顺便说一句:它只发生在“direction: rtl”的情况下。

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

最佳答案

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

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

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

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

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

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

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

关于html - IE9 : <ul> and rtl 上的奇怪错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10985036/

相关文章:

javascript - 如何使网站不响应 Magento 1.9

css过滤器使元素成为一种颜色

c++ - 使用IE引擎下载页面+使用POST

css - MozTransform 和 WebkitTransform : what's now the relative code for IE9

html - CSS 宽度/高度与 HTML 宽度/高度属性具有不同的效果,具体取决于元素类型

html - 图片底部和边框之间的空间从哪里来

html - 我怎样才能将我的图像设置在右边?

html - 我可以同时定位类(class)和 ID 吗?

javascript - 防止注入(inject)的标签受到父 CSS 的影响

html - 目标 IE 9 及以下版本并带有条件注释