首先,抱歉我的英语不好。
我遇到了一个非常奇怪的错误,它只发生在 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
顺便说一句:它只发生在“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/