CSS counters() 函数允许您使用嵌套计数器。它提供了一个组合字符串,显示指定计数器的当前值(如果存在)。该函数有两种形式:
counters(name, string)
counters(name, string) , style)
计数器的值可以通过 content 属性显示。
可能的值
<custom-name> - 这是计数器的唯一名称,必须与counter-reset和counter-increment中使用的大小写完全匹配。名称不得以两个连字符开头,并且不能为"none"、"unset"、"initial"或"inherit"。
<counter-style> - 这是可选的。计数器的样式(可以是 list-style-type 值或 @counter-style 值或symbols() 函数)。计数样式的名称可以很简单,例如数字、字母或符号等。
<string> - 它使我们可以自由地根据需要使用尽可能多的文本字符。当涉及到非拉丁字符时,必须使用其 unicode 转义序列来表示。
例如,\000A9 代表版权符号。
语法
counters( <custom-ident>, [, [ <counter-style> | none ] ], <string> )
CSS counters(): 基本示例
此程序演示 counters() 函数的用法。
<html>
<style>
ul {
list-style: none;
counter-reset: demo-counter;
}
ul li {
counter-increment: demo-counter;
background-color: lightgray;
}
ul li:before {
content: counters(demo-counter, ".") " - ";
color: red;
}
</style>
<ul>
<li>Chapter A
<ul>
<li>Unit- a
<ul>
<li>Sub-unit</li>
<li>Sub-unit</li>
</ul>
</li>
<li>Unit- b
<ul>
<li>Sub-unit</li>
<li>Sub-unit</li>
</ul>
</li>
</ul>
</li>
<li>Chapter B
<ul>
<li>Unit- a
<ul>
<li>Sub-unit</li>
<li>Sub-unit</li>
</ul>
</li>
<li>Unit- b
<ul>
<li>Sub-unit</li>
<li>Sub-unit</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</html>
CSS counters(): 嵌套有序列表
在以下示例中,counters() 函数用于根据名为 custom-counter 的计数器动态生成内容。
counters() 函数递增并检索指定计数器的值,允许对有序列表元素中的列表标记和内容进行自定义格式。
<html>
<head>
<style>
ol {
counter-reset: custom-counter;
}
li {
counter-increment: custom-counter;
}
li::marker {
content:
counters(custom-counter, ".", lower-alpha) ") ";
}
li::before {
content:
counters(custom-counter, ". ") " -- "
counters(custom-counter, "]. ", upper-roman);
}
</style>
</head>
<body>
<ol>
<li>
<ol>
<li></li>
<li></li>
<li></li>
</ol>
</li>
<li>
<ol>
<li></li>
<li></li>
<li></li>
</ol>
</li>
<li></li>
<li>
<ol>
<li></li>
<li>
<ol>
<li></li>
<li></li>
<li></li>
</ol>
</li>
</ol>
</li>
</ol>
</body>
</html>