0

我有以下 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。

4

1 回答 1

2

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

其次,该<p>元素不被认为显示为列表。因此,我想鼓励您使用该<ol>元素,因为它是专门为此目的而设计的,并且受到所有浏览器的支持。

于 2012-09-26T10:21:25.297 回答