CSS 计数器
CSS 计数器通过一个变量来设置,根据规则递增变量。
使用计数器自动编号
CSS 计数器根据规则来递增变量。
CSS 计数器使用到以下几个属性:
- counter-reset - 创建或者重置计数器
- counter-increment - 递增变量
- content - 插入生成的内容
- counter() 或 counters() 函数 - 将计数器的值添加到元素
要使用 CSS 计数器,得先用 counter-reset 创建:
以下实例在页面创建一个计数器 (在 ul 选择器中),每个 li
元素的计数值都会递增,并在每个 li
元素前添加 "Section <计数值>:"
ul {
counter-reset: section;
}
li::before {
counter-increment: section;
content: "Section " counter(section) ": ";
}
<h3>使用 CSS 计数器:</h3>
<ul>
<li>HTML 教程</li>
<li>CSS 教程</li>
<li>JavaScript 教程</li>
</ul>
效果:
使用 CSS 计数器:
- HTML 教程
- CSS 教程
- JavaScript 教程
嵌套计数器
以下实例在页面创建一个计数器,在每一个 <dt>
元素前添加计数值 "Section <主标题计数值>.", 嵌套的计数值则放在 <dd>
元素的前面,内容为 "<主标题计数值>.<副标题计数值>":
dl {
counter-reset: section;
}
dt {
counter-reset: subsection;
}
dt::before {
counter-increment: section;
content: "Section " counter(section) ". ";
}
dd::before {
counter-increment: subsection;
content: counter(section) "." counter(subsection) " ";
}
<dl>
<dt>HTML 教程:</dt>
<dd>HTML 教程</dd>
<dd>CSS 教程</dd>
</dl>
<dl>
<dt>Scripting 教程:</dt>
<dd>JavaScript</dd>
<dd>VBScript</dd>
</dl>
<!-- <h1>XML 教程:</h1>
<h2>XML</h2>
<h2>XSL</h2> -->
效果:
- HTML 教程:
- HTML 教程
- CSS 教程
- Scripting 教程:
- JavaScript
- VBScript
计数器也可以在嵌套层级中插入
ol {
counter-reset: section;
list-style-type: none;
}
li::before {
counter-increment: section;
content: counters(section,".") " ";
}
<ol>
<li>item</li>
<li>item
<ol>
<li>item</li>
<li>item</li>
<li>item
<ol>
<li>item</li>
<li>item</li>
<li>item</li>
</ol>
</li>
<li>item</li>
</ol>
</li>
<li>item</li>
<li>item</li>
</ol>
<ol>
<li>item</li>
<li>item</li>
</ol>
效果:
- item
- item
- item
- item
- item
- item
- item
- item
- item
- item
- item
- item
- item
CSS 计数器属性
属性 | 描述 |
---|---|
content | 使用 ::before 和 ::after 伪元素来插入自动生成的内容 |
counter-increment | 递增一个或多个值 |
counter-reset | 创建或重置一个或多个计数器 |