首先,只需使用CSS即可看到此错误。每当隐藏和显示<ol>
时都会发生这种情况。示例jsfiddle显示错误。
在某些情况下,也可能仅使用CSS修复错误。修复是一致的,但代码很脆弱,不是最好的。在这里,许多本不应该在CSS中起作用的东西确实起了作用,因此请小心编写代码。 示例jsfiddle可以正常工作。。基本思路是:切换行而不是列表,然后在(可见但有时为空的)<ol>
上使用counter-reset
重新创建列表编号,并在<li>
上使用counter-increment
。
优点:这里的所有内容都可以放在仅限IE的样式表中。如果在您的情况下
:hover
没有意义,并且您使用类似于jQuery
.show()
的东西,请考虑基于
.addClass()
的解决方案。
说到添加类,如果这个bug还不够奇怪,那么在像第一个示例中的条件下,似乎
<ol>
在IE中可以工作,如果Javascript向包装元素添加一个类-即使该类不起作用。
这里是一个jsfiddle示例。不能保证它在其他地方也能工作,但在这里它可以工作。
如果你试图理解这个 bug,a) 祝你好运,b) 看一下这里的 jsfiddle。这是发生在使用 CSS 的 counter
选项(加上常规编号),但切换的不是 <li>
而是 <ol>
的情况。你会得到一个疯狂的情况,显示的内容完全取决于你是否将鼠标悬停在前一个兄弟元素、后一个兄弟元素或两者都不是。毫无意义...但这可能是这个 bug 真正含义的线索。
我还遇到了一个无法复制的情况,其中编号全部为1、2、3等,具体取决于哪个
<ol>
:页面上的第一个变成1,1,1,1,1,第二个变成2,2,2,2,2,然后是3,3,3,3,3等。无法确定是什么原因导致这种怪异现象。