如何使用 CSS 计数器为 Bootstrap 行动态添加有序编号

通过 css `counter-reset` 和 `counter-increment` 配合 `::before` 伪元素,可无需 javascript 即为每个 bootstrap `.row` 自动添加递增序号(如“1.”、“2.”),完美适配响应式布局。

在 Bootstrap 中为每行内容添加动态序号(如 1. content...、2. content...)时,推荐使用原生 CSS 计数器(CSS Counters)——它语义清晰、性能优异、完全脱离 JavaScript,且与 Bootstrap 的 .row/.col 结构天然兼容。

✅ 实现原理简述

CSS 计数器基于三个核心属性:

  • counter-reset:在父容器上初始化计数器(如 section);
  • counter-increment:在目标元素上每次渲染时自动递增计数器;
  • content: counter(name):在 ::before 或 ::after 中插入当前计数值。

✅ 完整代码示例




  
  
  
  


  
    
      
        content will appear here
      
    
    
      
        content will appear here
      
    
    
      
        content will appear here
      
    
    
      
        content will appear here
      
    
  

⚠️ 注意事项

  • 避免嵌套干扰:若 .row 内部存在其他 counter-increment 元素,可能影响编号逻辑,建议仅在最外层 .row 上设置递增;
  • 响应式兼容性:该方案完全基于 CSS,与 Bootstrap 的栅格断点(col-md-6 等)无冲突,编号始终按 DOM 顺序生成;
  • 可扩展性:如需多级编号(如 1.1, 1.2),可叠加 counter-reset 和 counter(section sub) 实现;
  • 无障碍友好:纯视觉编号不被屏幕阅读器识别;若需语义化序号,建议结合
      +
    1. 结构或添加 aria-label。

✅ 总结

使用 CSS 计数器为 Bootstrap 行添加动态序号,是轻量、高效、可维护的最佳实践。它不依赖框架扩展、不增加 JS 负担,且易于定制样式与起始值(例如 counter-reset: section 10; 从 10 开始)。对于内容列表、步骤说明、FAQ 排序等场景,此方案兼具实用性与专业性。