0

0

css 伪元素与计数器_通过 ::before 和 ::after 创建计数器并显示内容

P粉602998670

P粉602998670

发布时间:2026-01-08 12:42:08

|

884人浏览过

|

来源于php中文网

原创

伪元素不能递增计数器,必须在真实元素上用counter-increment触发,再通过counter()或counters()在::before/::after中显示;多级编号需用counters(name, ".")拼接路径。

css 伪元素与计数器_通过 ::before 和 ::after 创建计数器并显示内容

伪元素本身不能直接递增计数器

很多人尝试在 ::before::after 里写 counter-increment: item; 并期望它自动累加并显示,这是行不通的。伪元素只是「内容插入点」,计数器的递增必须发生在**真实元素上**(比如

  • ),而显示才可交给伪元素。

    正确用法:先在父/目标元素上 counter-increment,再用 counter() 在伪元素中显示

    标准流程分两步:声明计数器作用域 → 对每个匹配元素递增 → 在伪元素中调用显示。常见错误是把 counter-increment 写在伪元素选择器里,这不会生效。

    • counter-reset 通常放在父容器(如 ol.list)上初始化计数器
    • counter-increment 必须写在要“触发计数”的**实际 HTML 元素**的选择器里(例如 lisection
    • content: counter(item) 才能放在 ::before::after 中渲染数字
    body {
      counter-reset: section;
    }
    section {
      counter-increment: section;
    }
    section::before {
      content: "第 " counter(section) " 节:";
      font-weight: bold;
    }

    多级嵌套计数器需用 counter(section, decimal)counters()

    当需要类似「2.3.1」这样的层级编号时,counter() 只能取最内层值,必须改用 counters() —— 它会按作用域拼接所有同名计数器,用指定分隔符连接。

    Live PPT
    Live PPT

    一款AI智能化生成演示内容的在线工具。只需输入一句话、粘贴一段内容、或者导入文件,AI生成高质量PPT。

    下载
    • counter(section) → 输出当前层级数字(如 3
    • counters(section, ".") → 输出完整路径(如 "1.2.3"
    • 嵌套结构中,每层都需独立 counter-increment,且父级 counter-reset 不影响子级作用域
    .chapter {
      counter-reset: subsection;
    }
    .chapter h2 {
      counter-increment: chapter;
    }
    .chapter h2::before {
      content: counter(chapter) ". ";
    }
    .chapter h3 {
      counter-increment: subsection;
    }
    .chapter h3::before {
      content: counters(chapter, ".") "." counter(subsection) " ";
    }

    注意伪元素 content 的字符串拼接与格式控制

    content 值是字符串拼接表达式,不是模板语法。空格、标点、单位都要显式写出;数字样式(如大写罗马数字)靠第二个参数控制,但不能加 CSS 样式(如 text-transform)到伪元素数字部分上。

    立即学习前端免费学习笔记(深入)”;

    • 支持的计数器样式:decimallower-romanupper-alpha 等,写在 counter(name, style) 第二个参数
    • 无法对 counter() 返回值单独设置颜色或字体大小——整个伪元素需统一设置
    • 若需前导零(如 01),CSS 无原生支持,得靠 JS 或预设类名
    ol {
      counter-reset: step;
    }
    .step-item {
      counter-increment: step;
    }
    .step-item::before {
      content: "步骤 " counter(step, upper-alpha) ":";
      color: #2c3e50;
    }
    CSS 计数器和伪元素配合的关键,在于理解「递增动作必须绑定到真实 DOM 元素」这一约束。一旦把 counter-increment 放错位置,后续怎么调 counter() 都不会变。层级复杂时,counters() 的括号嵌套和分隔符容易漏写,建议先用简单结构验证再叠加。
  • 相关专题

    更多
    css
    css

    css是层叠样式表,用来表现HTML或XML等文件样式的计算机语言,不仅可以静态地修饰网页,还可以配合各种脚本语言动态地对网页各元素进行格式化。php中文网还为大家带来html的相关下载资源、相关课程以及相关文章等内容,供大家免费下载使用。

    509

    2023.06.15

    css居中
    css居中

    css居中:1、通过“margin: 0 auto; text-align: center”实现水平居中;2、通过“display:flex”实现水平居中;3、通过“display:table-cell”和“margin-left”实现居中。本专题为大家提供css居中的相关的文章、下载、课程内容,供大家免费下载体验。

    262

    2023.07.27

    css如何插入图片
    css如何插入图片

    cssCSS是层叠样式表(Cascading Style Sheets)的缩写。它是一种用于描述网页或应用程序外观和样式的标记语言。CSS可以控制网页的字体、颜色、布局、大小、背景、边框等方面,使得网页的外观更加美观和易于阅读。php中文网给大家带来了相关的教程以及文章,欢迎大家前来阅读学习。

    745

    2023.07.28

    css超出显示...
    css超出显示...

    在CSS中,当文本内容超出容器的宽度或高度时,可以使用省略号来表示被隐藏的文本内容。本专题为大家提供css超出显示...的相关文章,相关教程,供大家免费体验。

    536

    2023.08.01

    css字体颜色
    css字体颜色

    CSS中,字体颜色可以通过属性color来设置,用于控制文本的前景色,字体颜色在网页设计中起到很重要的作用,具有以下表现作用:1、提升可读性;2、强调重点信息;3、营造氛围和美感;4、用于呈现品牌标识或与品牌形象相符的风格。

    756

    2023.08.10

    什么是css
    什么是css

    CSS是层叠样式表(Cascading Style Sheets)的缩写,是一种用于描述网页(或其他基于 XML 的文档)样式与布局的标记语言,CSS的作用和意义如下:1、分离样式和内容;2、页面加载速度优化;3、实现响应式设计;4、确保整个网站的风格和样式保持统一。

    601

    2023.08.10

    css三角形怎么写
    css三角形怎么写

    CSS可以通过多种方式实现三角形形状,本专题为大家提供css三角形怎么写的相关教程,大家可以免费体验。

    559

    2023.08.21

    css设置文字颜色
    css设置文字颜色

    CSS(层叠样式表)可以用于设置文字颜色,这样做有以下好处和优势:1、增加网页的可视化效果;2、突出显示某些重要的信息或关键字;3、增强品牌识别度;4、提高网页的可访问性;5、引起不同的情感共鸣。

    388

    2023.08.22

    Golang 分布式缓存与高可用架构
    Golang 分布式缓存与高可用架构

    本专题系统讲解 Golang 在分布式缓存与高可用系统中的应用,涵盖缓存设计原理、Redis/Etcd集成、数据一致性与过期策略、分布式锁、缓存穿透/雪崩/击穿解决方案,以及高可用架构设计。通过实战案例,帮助开发者掌握 如何使用 Go 构建稳定、高性能的分布式缓存系统,提升大型系统的响应速度与可靠性。

    27

    2026.01.09

    热门下载

    更多
    网站特效
    /
    网站源码
    /
    网站素材
    /
    前端模板

    精品课程

    更多
    相关推荐
    /
    热门推荐
    /
    最新课程
    Sass 教程
    Sass 教程

    共14课时 | 0.7万人学习

    Bootstrap 5教程
    Bootstrap 5教程

    共46课时 | 2.8万人学习

    CSS教程
    CSS教程

    共754课时 | 18.2万人学习

    关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
    php中文网:公益在线php培训,帮助PHP学习者快速成长!
    关注服务号 技术交流群
    PHP中文网订阅号
    每天精选资源文章推送

    Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号