css中counter()应用示例

166 阅读1分钟

写法

/* Simple usage */
counter(countername);

/* changing the counter display */
counter(countername, upper-roman)

一般搭配伪元素使用,::before 和 ::after 的content赋值

示例

HTML

<ol>
  <li></li>
  <li></li>
  <li></li>
</ol>

CSS

ol {
  counter-reset: listCounter;
}
li {
  counter-increment: listCounter;
}
li::after {
  content: "[" counter(listCounter) "] == ["
               counter(listCounter, upper-roman) "]";
}

结果

1617764722411.jpg

语法解析

counter(listCounter, upper-roman)

counter( <custom-ident>, <counter-style>? )

custom-ident(listCounter)

counter名称与counter-reset和counter-increment定义的名称一致,不能以双破折号开头

counter-style (upper-roman)

counter-style是counter表现形式,可以是数字、字母或符号。值支持的类型 <list-style-type>

counter-reset 语法

/* Set "my-counter" to 0 */
counter-reset: my-counter;

/* Set "my-counter" to -1 */
counter-reset: my-counter -1;

/* Set "counter1" to 1, and "counter2" to 4 */
counter-reset: counter1 1 counter2 4;

/* Cancel any reset that could have been set in less specific rules */
counter-reset: none;

/* Global values */
counter-reset: inherit;
counter-reset: initial;
counter-reset: unset;

counter-increment语法

/* Increment "my-counter" by 1 */
counter-increment: my-counter;

/* Decrement "my-counter" by 1 */
counter-increment: my-counter -1;

/* Increment "counter1" by 1, and decrement "counter2" by 4 */
counter-increment: counter1 counter2 -4;

/* Do not increment/decrement anything: used to override less specific rules */
counter-increment: none;

/* Global values */
counter-increment: inherit;
counter-increment: initial;
counter-increment: unset;