counters() - CSS: Cascading Style Sheets 编辑
The counters()
CSS function enables nested counters, returning a concatenated string representing the current values of the named counters, if there are any. The counters()
function has two forms: counters(name, string)
or counters(name, string, style)
. It is generally used with pseudo-elements, but can be used, theoretically, anywhere a <string>
value is supported. The generated text is the value of all counters with the given name, from outermost to innermost, separated by the specified string. The counters are rendered in the style indicated, defaulting to decimal
if no style is specified.
/* Simple usage - style defaults to decimal */
counters(countername, '-');
/* changing the counter display */
counters(countername, '.', upper-roman)
A counter has no visible effect by itself. The counters()
function (and counter()
function) is what makes it useful by returning developer defined content.
Note: The counters()
function can be used with any CSS property, but support for properties other than content
is experimental, and support for the type-or-unit parameter is sparse.
Check the Browser compatibility table carefully before using this in production.
Syntax
Values
<custom-ident>
- A name identifying the counters, which is the same case-sensitive name used for the
counter-reset
andcounter-increment
. The name cannot start with two dashes and can't benone
,unset
,initial
, orinherit
. <counter-style>
- A counter style name or
symbols()
function, where a counter style name is a numeric, alphabetic, or symbolic simple predefined counter style, a complex longhand east Asian or Ethiopic predefined counter style, or other predefined counter style. If omitted, the counter-style defaults to decimal <string>
- Any number of text characters. Non-Latin characters must be encoded using their Unicode escape sequences: for example,
\000A9
represents the copyright symbol.
Formal syntax
counters( <custom-ident>, <string>, <counter-style>? )where
<counter-style> = <counter-style-name> | symbols()
where
<counter-style-name> = <custom-ident>
Examples
default value compared to upper Roman
HTML
<ol>
<li>
<ol>
<li></li>
<li></li>
<li></li>
</ol>
</li>
<li></li>
<li></li>
<li>
<ol>
<li></li>
<li>
<ol>
<li></li>
<li></li>
<li></li>
</ol>
</li>
</ol>
</li>
</ol>
CSS
ol {
counter-reset: listCounter;
}
li {
counter-increment: listCounter;
}
li::marker {
content: counters(listCounter, '.', upper-roman) ') ';
}
li::before {
content: counters(listCounter, ".") " == " counters(listCounter, ".", lower-roman) ;
}
Result
decimal-leading-zero compared to lower-alpha
HTML
<ol>
<li>
<ol>
<li></li>
<li></li>
<li></li>
</ol>
</li>
<li></li>
<li></li>
<li>
<ol>
<li></li>
<li>
<ol>
<li></li>
<li></li>
<li></li>
</ol>
</li>
</ol>
</li>
</ol>
CSS
ol {
counter-reset: count;
}
li {
counter-increment: count;
}
li::marker {
content: counters(count, '.', upper-alpha) ') ';
}
li::before {
content: counters(count, ".", decimal-leading-zero) " == " counters(count, ".", lower-alpha);
}
Result
Specifications
Specification | Status | Comment |
---|---|---|
CSS Lists Module Level 3 The definition of 'CSS Counters' in that specification. | Working Draft | No change |
CSS Level 2 (Revision 1) The definition of 'CSS Counters' in that specification. | Recommendation | Initial definition |
Browser compatibility
BCD tables only load in the browser
See also
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论