Skip to content

徽章 Badge

徽章是用于显示数字、状态或标签的小型信息指示器。

基础用法

数字徽章

html
<span class="glass-badge">5</span>
<span class="glass-badge">99</span>
<span class="glass-badge">99+</span>

文字徽章

html
<span class="glass-badge">新</span>
<span class="glass-badge">热门</span>
<span class="glass-badge">推荐</span>

基础徽章

html
<span class="glass-badge">默认</span>
<span class="glass-badge verified">已认证</span>
<span class="glass-badge premium">高级</span>

预览效果:

默认已认证高级

徽章类型

状态徽章

html
<span class="glass-badge primary">主要</span>
<span class="glass-badge success">成功</span>
<span class="glass-badge warning">警告</span>
<span class="glass-badge danger">错误</span>
<span class="glass-badge info">信息</span>

点状徽章

html
<span class="glass-badge dot"></span>
<span class="glass-badge dot success"></span>
<span class="glass-badge dot warning"></span>
<span class="glass-badge dot danger"></span>

与元素组合

按钮徽章

html
<button class="glass-button">
  消息
  <span class="glass-badge">5</span>
</button>

<button class="glass-button primary">
  通知
  <span class="glass-badge danger">!</span>
</button>

头像徽章

html
<div class="avatar-with-badge">
  <div class="glass-avatar">👤</div>
  <span class="glass-badge dot success"></span>
</div>

标签页徽章

html
<div class="tab-with-badge">
  <span class="tab-text">未读消息</span>
  <span class="glass-badge">12</span>
</div>

CSS 类名

基础类名

  • .glass-badge - 基础徽章样式

修饰类名

类型修饰符

  • .primary - 主要类型
  • .success - 成功类型
  • .warning - 警告类型
  • .danger - 危险类型
  • .info - 信息类型
  • .dot - 点状徽章

JavaScript 增强

动态更新徽章

javascript
function updateBadge(badgeElement, value) {
  if (value === 0) {
    badgeElement.style.display = 'none';
  } else {
    badgeElement.style.display = '';
    badgeElement.textContent = value > 99 ? '99+' : value;
  }
}

// 使用示例
const badge = document.querySelector('.message-badge');
updateBadge(badge, 15);

徽章动画

javascript
function animateBadge(badgeElement) {
  badgeElement.classList.add('badge-animate');
  
  setTimeout(() => {
    badgeElement.classList.remove('badge-animate');
  }, 300);
}

// 新消息时触发动画
function onNewMessage() {
  const badge = document.querySelector('.notification-badge');
  animateBadge(badge);
}

应用场景

导航菜单

html
<nav class="navigation">
  <a href="/messages" class="nav-item">
    消息
    <span class="glass-badge">3</span>
  </a>
  <a href="/notifications" class="nav-item">
    通知
    <span class="glass-badge warning">!</span>
  </a>
  <a href="/orders" class="nav-item">
    订单
    <span class="glass-badge success">已完成</span>
  </a>
</nav>

商品标签

html
<div class="product-card">
  <div class="product-image">
    <img src="product.jpg" alt="商品">
    <span class="glass-badge danger">限时</span>
    <span class="glass-badge success">包邮</span>
  </div>
  <div class="product-info">
    <h3>商品名称</h3>
    <p>¥199</p>
  </div>
</div>

状态指示

html
<div class="user-list">
  <div class="user-item">
    <div class="user-avatar">👤</div>
    <span class="user-name">用户A</span>
    <span class="glass-badge dot success" title="在线"></span>
  </div>
  <div class="user-item">
    <div class="user-avatar">👤</div>
    <span class="user-name">用户B</span>
    <span class="glass-badge dot" title="离线"></span>
  </div>
</div>

Released under the MIT License.