IE 7中没有列表的嵌套CSS计数器

时间:2012-09-26 10:08:29

标签: javascript css internet-explorer-7 counter

我有以下HTML代码结构(示例):

<p paraclass="M">Some Text</p>
<p paraclass="A1">enum 1</p>
<p paraclass="A1">enum 2</p>
<p paraclass="A2">enum 2.1</p>
<p paraclass="A2">enum 2.2</p>
<p paraclass="A1">enum 3</p>

并希望它像这样呈现:

Some Text
1 enum 1
2 enum 2
   2.1 enum 2.1
   2.2 enum 2.2
3 enum 3

这适用于CSS-pseudotag,如:

p[paraclass="A1"]:before{
   content:counter(A1);
   counter-increment:A1;
   counter-reset: A2;
 }

不幸的是,这在IE7中不起作用。
在没有更改HTML的情况下,在IE7中工作的好方法是什么?
对于JS解决方案,我有关于我需要的计数器的所有信息(比如Id,他们重置了什么计数器以及他们有什么列表样式类型)。有更好/更简单的方法吗?如果没有,我怎么能在不自己实现的情况下使用像“lower-roman”这样的反量词呢?
注意:可以使用jQuery 1.6.2。

1 个答案:

答案 0 :(得分:2)

首先,您的HTML无效。如果您使用HTML 5进行开发,则必须将paraclass属性重命名为data-paraclass,或者如果您使用XHTML进行开发,则必须添加命名空间。

其次,<p>元素不被视为列表。因此,我们建议您使用<ol>元素,因为它是专为此目的而设计的,并且受到所有浏览器的支持。