You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Bootstrap 4导航栏中为主题添加对应条目数量?

在Bootstrap 4导航栏中添加主题条目数量的实现方案

核心思路

Bootstrap 4自带的badge组件刚好适配这类计数展示需求,我们只需要把它嵌入导航栏的菜单项里,再根据场景选择静态写死、后端动态渲染或者前端异步更新数值就可以了。下面分几种常用场景给你演示:


1. 静态实现(固定数值)

如果你的条目数量暂时不需要变动,直接把badge放在导航链接后方就行,还能通过Bootstrap内置的颜色类调整样式,让它和导航栏风格更协调:

<nav class="navbar navbar-expand-lg navbar-dark bg-dark">
  <a class="navbar-brand" href="#">技术知识库</a>
  <div class="collapse navbar-collapse" id="navbarNav">
    <ul class="navbar-nav">
      <li class="nav-item">
        <a class="nav-link" href="#">PHP <span class="badge badge-secondary">2,456</span></a>
      </li>
      <li class="nav-item">
        <a class="nav-link" href="#">Javascript <span class="badge badge-secondary">500</span></a>
      </li>
      <li class="nav-item">
        <a class="nav-link" href="#">ASP.NET <span class="badge badge-secondary">4,444</span></a>
      </li>
      <li class="nav-item">
        <a class="nav-link" href="#">HTML/CSS <span class="badge badge-secondary">23,454</span></a>
      </li>
    </ul>
  </div>
</nav>

你可以把badge-secondary换成badge-primary(蓝色)、badge-success(绿色)等颜色类,匹配你的网站主题。


2. 动态实现(PHP后端驱动)

如果数量是从数据库或接口获取的,用PHP动态输出就很方便。假设你已经从数据库查询到了各主题的统计数,存在变量里:

<?php
// 模拟从数据库获取的数值,实际项目中替换为数据库查询逻辑
$phpCount = number_format(2456); // 自动添加千位分隔符,输出2,456
$jsCount = number_format(500);
$aspCount = number_format(4444);
$htmlCssCount = number_format(23454);
?>

<nav class="navbar navbar-expand-lg navbar-dark bg-dark">
  <a class="navbar-brand" href="#">技术知识库</a>
  <div class="collapse navbar-collapse" id="navbarNav">
    <ul class="navbar-nav">
      <li class="nav-item">
        <a class="nav-link" href="#">PHP <span class="badge badge-secondary"><?php echo $phpCount; ?></span></a>
      </li>
      <li class="nav-item">
        <a class="nav-link" href="#">Javascript <span class="badge badge-secondary"><?php echo $jsCount; ?></span></a>
      </li>
      <li class="nav-item">
        <a class="nav-link" href="#">ASP.NET <span class="badge badge-secondary"><?php echo $aspCount; ?></span></a>
      </li>
      <li class="nav-item">
        <a class="nav-link" href="#">HTML/CSS <span class="badge badge-secondary"><?php echo $htmlCssCount; ?></span></a>
      </li>
    </ul>
  </div>
</nav>

这里用number_format()函数自动处理千位分隔符,比手动写死数值更灵活。


3. 前端JS异步更新

如果需要从前端异步获取最新数量(比如实时统计),可以给徽章加个ID,用JS动态更新内容:

<nav class="navbar navbar-expand-lg navbar-dark bg-dark">
  <a class="navbar-brand" href="#">技术知识库</a>
  <div class="collapse navbar-collapse" id="navbarNav">
    <ul class="navbar-nav">
      <li class="nav-item">
        <a class="nav-link" href="#">PHP <span class="badge badge-secondary" id="phpCount">0</span></a>
      </li>
      <li class="nav-item">
        <a class="nav-link" href="#">Javascript <span class="badge badge-secondary" id="jsCount">0</span></a>
      </li>
      <li class="nav-item">
        <a class="nav-link" href="#">ASP.NET <span class="badge badge-secondary" id="aspCount">0</span></a>
      </li>
      <li class="nav-item">
        <a class="nav-link" href="#">HTML/CSS <span class="badge badge-secondary" id="htmlCssCount">0</span></a>
      </li>
    </ul>
  </div>
</nav>

<script>
// 模拟AJAX请求获取实时数据,实际项目替换为你的接口地址
fetch('/api/topic-counts')
  .then(res => res.json())
  .then(data => {
    // 更新各个徽章的数值
    document.getElementById('phpCount').textContent = numberFormat(data.php);
    document.getElementById('jsCount').textContent = numberFormat(data.js);
    document.getElementById('aspCount').textContent = numberFormat(data.asp);
    document.getElementById('htmlCssCount').textContent = numberFormat(data.htmlCss);
  })
  .catch(err => console.log('获取数据失败:', err));

// JS版千位分隔符函数
function numberFormat(num) {
  return num.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ',');
}
</script>

小优化:自定义徽章样式

如果觉得默认徽章太突兀,可以加一点自定义CSS调整大小和间距:

.nav-link .badge {
  font-size: 0.7rem;
  margin-left: 0.5rem;
  padding: 0.25em 0.4em;
}

内容的提问来源于stack exchange,提问作者Artoo Smith

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 09:04:44