CSS反重置

时间:2013-02-23 03:12:45

标签: css

我无法理解为什么有些计数器可以工作,有些则不然。在下面的HTML中,目标是cnt3样式用于使用< h3>创建目录列表,该列表匹配后续< h2>头。我希望目录中的编号与< h2>的编号相匹配。头。而且我正在尝试使用CSS计数器来完成它,而且大部分它都在工作,但似乎我的h3s计数器的目录,要么没有增加,要么经常重置,但我不知道为什么,我也没弄明白如何调试这个...... Mozilla Firebug似乎告诉我,反增量是在正确的地方使用,但它似乎对编号没有影响。显然,这是一个剥离的例子,只是为了证明这个问题,它出现在一个更大的文档中。

HTML

<h1>H1 Title</h1>
<h2>H2 Title</h2>
<h3 class="cnt3">H3 1</h3>
<h3 class="cnt3">H3 2</h3>
<h3 class="cnt3">H3 3</h3>
<h2 class="cnt">H2 Title 2</h2>
<h3 class="top">H3 4</h3>
<h3 class="top">H3 5</h3>
<h3 class="top">H3 6</h3>
<h2 class="cnt">H2 Title 3</h2>

CSS

h1 {
    counter-reset: h2s;
    text-align: center;
    font-size: 24pt;
}
h2 {
    font-size: 20pt;
    counter-reset: h3s;
    counter-reset: h3t;
}
h3 {
    font-size: 16pt;
    counter-reset: h4t;
}
h2.cnt:before {
    content: 'Section ' counter( h2s, decimal ) ': ';
    counter-increment: h2s;
}
h3.cnt3:before {
    content: 'Section ' counter( h3s, decimal ) ': ';
    counter-increment: h3s;
}
h3.top:before {
    font-size: 16pt;
    content: counter( h2s, decimal ) '.' counter( h3t, decimal ) ': ';
    counter-increment: h3t;
}
h4 { font-size: 13pt; }
h4.top:before {
    font-size: 16pt;
    content: counter( h2s, decimal ) '.' counter( h3t, decimal ) '.' counter( h4t, decimal ) ': ';
    counter-increment: h4t;
}

Firefox和Chrome都出现问题,所以我认为这是我的代码而不是两个浏览器中的相同错误!

1 个答案:

答案 0 :(得分:4)

您没有使用应该使用的方法。

此属性也会运行级联规则。 所以这里......

h2 {
    font-size: 20pt;
    counter-reset: h3s;
    counter-reset: h3t;
    }

您对该属性的第二个定义会覆盖前一个。

为同一元素重置2个计数器时,应将它们一起指定,如下所示

您的h2规则应如下所示

h2 {
    font-size: 20pt;
    counter-reset: h3s h3t;
}

这里有JSBin正常工作