直接用 Bootstrap 的 .badge 类即可,但需注意 Bootstrap 5 移除了默认背景色,必须搭配 .bg-* 类(如 .bg-danger)才可见;Bootstrap 4 虽有浅灰背景,仍推荐显式指定颜色类以保证一致性。

直接用 Bootstrap 的 .badge 类就行,但得注意版本差异
Bootstrap 5 和 Bootstrap 4 的 .badge 默认是内联元素、无背景色、不带圆角,容易误以为“没生效”。实际需要手动加背景色类(如 .bg-primary)和可选的尺寸/颜色修饰类。
- Bootstrap 5 中
.badge已移除默认背景,必须搭配.bg-*(如.bg-danger)才可见 - Bootstrap 4 中
.badge仍有默认浅灰背景,但推荐显式指定颜色类以保证一致性 - 数字徽章常放在按钮、导航项或头像右上角,需配合
position: relative+position: absolute定位
给头像右上角加数字徽章的典型写法
这是最常见需求:头像旁显示未读消息数。关键在父容器设 position: relative,徽章设 position: absolute 并用 top/right 微调位置。
@@##@@ 3 unread messages
-
.position-relative是父容器必需的定位上下文 -
.position-absolute+.top-0+.start-100+.translate-middle组合能精准锚定右上角,比手写right: -6px; top: -6px更健壮 -
.visually-hidden提供无障碍支持,屏幕阅读器可读但视觉隐藏
动态更新徽章数字时别忘了清空或重置
用 JavaScript 修改徽章内容时,如果数字变为 0 或空,建议隐藏而非留白,否则 UI 显得奇怪。
- 避免只改
textContent: 空徽章仍占位且有边框 - 推荐逻辑:
if (count === 0) { badge.classList.add('d-none'); } else { badge.textContent = count; badge.classList.remove('d-none'); } - 若用 Bootstrap 5.3+,可直接用
.badge-pill(已废弃)或自定义--bs-badge-padding-x调整内边距,但原生不支持自动隐藏
不用 Bootstrap 也能 3 行 CSS 实现类似效果
如果项目没引入 Bootstrap,或只想轻量实现,下面这段纯 CSS 足够覆盖多数场景:
立即学习“前端免费学习笔记(深入)”;
.badge {
display: inline-flex;
justify-content: center;
align-items: center;
min-width: 1.5em;
height: 1.5em;
padding: 0 0.375em;
font-size: 0.75em;
font-weight: 700;
line-height: 1;
color: #fff;
background-color: #dc3545;
border-radius: 50%;
}
- 用
inline-flex替代inline-block,居中更可靠 -
min-width防止个位数徽章过窄,border-radius: 50%保证圆形 - 颜色、尺寸、圆角都可按需覆盖,比依赖框架更可控
.badge 快是快,但它的定位逻辑、隐藏行为、响应式表现都得靠额外类或 JS 补齐——真正省时间的地方不是“有没有”,而是“要不要为一个徽章引入整套 CSS”。










