编程笔记 html5&css&js 058 css计数器

编程笔记 html5&css&js 058 css计数器

CSS 计数器是由 CSS 保持的"变量",其值可以通过 CSS 规则递增(以跟踪其使用次数)。计数器使您可以根据内容在文档中的位置来调整其外观。

一、带计数器的自动编号

CSS 计数器就像"变量"。变量值可以通过 CSS 规则递增(将跟踪它们的使用次数)。

如需使用 CSS 计数器,我们将使用以下属性:

counter-reset - 创建或重置计数器

counter-increment - 递增计数器值

content - 插入生成的内容

counter() 或 counters() 函数 - 将计数器的值添加到元素

复制代码
body {
  counter-reset: section;
}
h2::before {
  counter-increment: section;
  content: "Section " counter(section) ": ";
}

二、嵌套计数器

下面的例子为页面(section)创建一个计数器,为每个 <h1> 元素(subsection)创建一个计数器。

"section" 计数器为每个 <h1> 元素计数,同时写入 "Section" 以及 section 计数器的值,"subsection" 计数器为每个 <h2> 元素计数,同时写入 section 计数器的值以及 subsection 计数器的值:

复制代码
body {
  counter-reset: section;
}
h1 {
  counter-reset: subsection;
}
h1::before {
  counter-increment: section;
  content: "Section " counter(section) ". ";
}
h2::before {
  counter-increment: subsection;
  content: counter(section) "." counter(subsection) " ";
}

计数器对于创建概述列表也很有用,因为在子元素中会自动创建一个计数器的新实例。在这里,我们使用 counters() 函数在不同级别的嵌套计数器之间插入一个字符串:

复制代码
ol {
  counter-reset: section;
  list-style-type: none;
}
li::before {
  counter-increment: section;
  content: counters(section,".") " ";
}

三、CSS 计数器属性

复制代码
属性	描述
content	与 ::before 和 ::after 伪元素一同使用,来插入生成的内容。
counter-increment	递增一个或多个计数器值。
counter-reset	创建或重置一个或多个计数器。

练习

复制代码
<!doctype html>
<html lang = "zh-cn">
<head>
<meta charset = "UTF-8">
    <title>CSS响应式布局 编程笔记 html5&css&js</title>
    <style>
        body {
            text-align: center;
            counter-reset: section;
            color: cyan;
            background-color: teal;
        }
        h2::before {
            counter-increment: section;
            content: "第" counter(section) "章 ";
        }
    </style>
</head>
<body>
<h1>
    《青少年成长管理》
</h1>
<h2>成长工程</h2>
<h2>成长要素</h2>
<h2>成长目标</h2>
<h2>成长资源</h2>
<h2>专业选择</h2>
<h2>成长导师</h2>
<h2>时间管理</h2>
<h2>学习方法</h2>
<h2>常见问题</h2>
<h2>成长计划</h2>
<h2>项目计划</h2>
<h2>任务计划</h2>
<h2>计划执行</h2>
<h2>考核评价</h2>
<h2>调整改进</h2>
<h2>走进社会</h2>
<h2>改变世界</h2>
<h2>成就人生</h2>
</body>
</html>

小结

计数器可以使用有序列表具有自定义的格式,以满足实际需要。

相关推荐
C_心欲无痕30 分钟前
vue3 - defineExpose暴露给父组件属性和方法
前端·javascript·vue.js·vue3
贺今宵1 小时前
安装better-sqlite3报错electron-vite
javascript·sql·sqlite·sqlite3
2501_944446002 小时前
Flutter&OpenHarmony文件夹管理功能实现
android·javascript·flutter
lcc1874 小时前
CSS3 2D变换
css3
颜酱4 小时前
滑动窗口详解:原理+分类+场景+模板+例题(视频贼清晰)
javascript
橙某人4 小时前
LogicFlow 交互新体验:让锚点"活"起来,鼠标跟随动效实战!🧲
前端·javascript·vue.js
程序猿的程5 小时前
Stock写给前端的股票行情 SDK: stock-sdk,终于不用再求后端帮忙了
前端·javascript·node.js
用户新5 小时前
V8引擎 精品漫游指南 -解析篇 语法解析 AST 作用域 闭包 字节码 优化 一文通关
前端·javascript
社恐的下水道蟑螂6 小时前
深入理解 React 中的 Props:组件通信的桥梁
前端·javascript·react.js
凌览6 小时前
2025年,我和AI合伙开发了四款小工具
前端·javascript·后端