Bootstrap 列表组激活状态设置 ListGroupItem样式

陌墨酱_4044

陌墨酱_4044

2026-04-25

336人浏览

原创

listgroupitem 显示激活态需同时添加 list-group-item 和 active 类,如 ;react 中用 classname={list-group-item ${activekey === id ? 'active' : ''}} 动态控制,禁用时不可混用 disabled,应改用 aria-current 提升无障碍支持。

bootstrap 列表组激活状态设置 listgroupitem样式

如何让 ListGroupItem 显示为激活态(active)

Bootstrap 的 ListGroupItem 默认不带激活样式,必须显式添加 active 类才能触发蓝色背景 + 白色文字的激活态视觉效果。这个类名是 Bootstrap 5+ 官方约定,不是自定义类,也不能用 is-active 或 selected 替代。

常见错误是只写 className="active" 却忘了它必须和 list-group-item 共存——否则样式无法继承基础边框、圆角、内边距等:


  • 当前选中项
    • React 中使用 className,非 class
    • Vue 中用 class="list-group-item active" 即可
    • 若用的是 Bootstrap 4,同样有效;Bootstrap 5 未改动该行为
    • 不要试图用 :hover 或 :focus 模拟激活态——它们没有语义,也不被屏幕阅读器识别

    active 类和 JavaScript 动态控制的配合方式

    激活态通常需响应用户点击切换,不能硬编码在 HTML 里。关键点在于:状态管理必须驱动 class 切换,而非仅改内容或加 style。

    以 React 函数组件为例,典型写法是:

    VPS Bootstrap
    VPS Bootstrap

    从零启动全新 VPS,完成 OpenClaw 完整部署,包括备份/恢复及恢复后验证。用于 OpenClaw 部署。

    下载
    const [activeKey, setActiveKey] = useState('item-1');<br><br>{items.map(item => (<br>
  • key={item.id}
    className={`list-group-item ${activeKey === item.id ? 'active' : ''}`}
    onClick={() => setActiveKey(item.id)}
    >{item.text}

  • ))}
    • 必须用模板字符串拼接 class,避免空格残留(如 className="list-group-item active" 多余空格会导致失效)
    • 不要用 classList.toggle() 手动操作 DOM——破坏 React 的渲染一致性
    • 如果列表项来自 API,注意 activeKey 初始化值要与首项 ID 匹配,否则首屏无激活项

    为什么 disabled 和 active 不能同时存在

    Bootstrap 明确禁止 active 与 disabled 同时作用于一个 ListGroupItem。一旦加了 disabled,CSS 会强制覆盖 active 的背景色和文字色,最终显示为灰色不可点击态,且 active 的语义完全丢失。

    • 现象:<li class="list-group-item active disabled">…</li> 看起来像禁用项,不是激活项
    • 原因:Bootstrap 的 .disabled 样式优先级更高,并重置了所有交互相关属性
    • 替代方案:若需“视觉激活但不可操作”,应改用 aria-current="true" + 自定义 CSS,而非依赖 active 类
    • 无障碍要求:aria-current="page" 或 aria-current="step" 比纯视觉 active 更可靠

    自定义激活样式时最容易忽略的兼容点

    如果项目里覆盖了 .list-group-item.active 的默认样式(比如改成紫色背景),务必检查三个地方:

    • 是否保留了 border-color —— Bootstrap 的激活项默认会加深边框色,去掉后可能显得“浮”在列表外
    • 是否重写了 :focus-visible 样式 —— 键盘用户 Tab 到激活项时,若没提供焦点轮廓,会违反 WCAG 2.4.7
    • 是否遗漏了 dark mode 下的适配 —— Bootstrap 5.3+ 支持 data-bs-theme="dark",自定义颜色需同步提供暗色版本,否则激活项在深色主题下可能看不见文字

    直接改 !important 不解决问题,反而会让后续维护更难——最好用更高特异性选择器,例如 .my-app .list-group-item.active。

    相关文章

    PHP速学视频免费教程(入门到精通)
    PHP速学视频免费教程(入门到精通)

    PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

    下载

    相关标签:

    bootstrap

    本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

    相关专题

    更多
    python是前端还是后端
    python是前端还是后端

    Python属于前端也属于后端,其灵活性和丰富的生态系统使得开发人员能够在不同的领域中灵活运用。本专题为大家提供python相关的文章、下载、课程内容,供大家免费下载体验。

    2023.08.11

    2643

    5

    前端如何实现即时通讯
    前端如何实现即时通讯

    实现即时通讯的方法有WebSocket、Long Polling、Server-Sent Events、WebRTC等等。详细介绍:1、WebSocket,它可以在客户端和服务器之间建立持久连接,实现实时的双向通信,前端可以使用 WebSocket API来创建WebSocket连接,并通过发送和接收消息来实现即时通讯;2、Long Polling,是一种模拟实时通信的技术等等。

    2023.10.09

    5723

    6

    前端和后端的区别
    前端和后端的区别

    前端关注的是用户界面的设计和交互,而后端则注重数据处理和逻辑控制。想了解更多前端后端的相关内容,可以阅读本专题下面的文章。

    2024.03.19

    6710

    13

    php和前端的关联介绍
    php和前端的关联介绍

    php既可以作为前端语言,也可以作为后端语言。想了解更多php和前端的相关内容,可以阅读本专题下面的文章。

    2024.03.22

    6418

    10

    前端外包工作内容有哪些
    前端外包工作内容有哪些

    前端外包工作内容包括:1. 网站和应用程序开发;2. 用户界面和交互设计;3. 用户体验优化;4. 设计和视觉开发;5. 跨浏览器兼容性;6. 性能优化;7. 维护和更新;8. 项目管理和沟通。想了解更多前端的相关内容,可以阅读本专题下面的文章。

    2024.05.22

    903

    5

    bootstrap框架介绍
    bootstrap框架介绍

    本专题整合了bootstrap框架相关介绍,阅读专题下面的文章了解更多详细内容。

    2026.03.18

    725

    21

    bootstrap安装教程
    bootstrap安装教程

    本专题整合了bootstrap安装相关教程,阅读专题下面的文章了解更多详细操作教程。

    2026.03.18

    199

    9

    Gradle插件开发入门教程
    Gradle插件开发入门教程

    本专题介绍Gradle插件开发的基本流程,涵盖插件类编写、自定义任务注册、扩展参数设计和插件应用方法,帮助你理解插件如何组织构建逻辑,减少多个项目之间的重复配置。

    2026.10.22

    20

    11

    Gradle Wrapper配置教程
    Gradle Wrapper配置教程

    本专题介绍Gradle Wrapper的基本作用,涵盖文件组成、生成方法、版本配置和任务调用,帮助你理解项目如何使用指定的Gradle版本,减少不同开发环境带来的构建差异。

    2026.10.22

    20

    10

    热门下载

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

    精品课程

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

    共0课时 | 0人学习

    Bootstrap Components 组件文档
    Bootstrap Components 组件文档

    共0课时 | 0人学习

    Bootstrap Grid 栅格系统
    Bootstrap Grid 栅格系统

    共0课时 | 0人学习