0

0

Bootstrap 固定顶部导航栏:左侧 Logo 与右侧导航链接的响应式实现

碧海醫心

碧海醫心

发布时间:2026-02-15 22:45:11

|

372人浏览过

|

来源于php中文网

原创

Bootstrap 固定顶部导航栏:左侧 Logo 与右侧导航链接的响应式实现

本文详解如何使用 bootstrap 4/5 快速构建一个固定在页面顶部、左侧显示 logo、右侧对齐导航链接的响应式导航栏,重点解决因 flex 容器宽度塌陷导致的布局错位问题。

本文详解如何使用 bootstrap 4/5 快速构建一个固定在页面顶部、左侧显示 logo、右侧对齐导航链接的响应式导航栏,重点解决因 flex 容器宽度塌陷导致的布局错位问题。

在 Bootstrap 中实现「固定顶部导航栏(Fixed Top Navbar)」并合理分配 Logo 与导航项——左对齐 Logo、右对齐 Nav Links——看似简单,实则常因 CSS 布局细节而失败。核心问题往往不是语义结构错误,而是 Flex 容器未显式设置宽度:当

✅ 正确解法非常简洁:为自定义导航容器显式声明 width: 100%,确保其作为 Flex 主轴容器具备完整可用宽度。

以下是一个基于 Bootstrap 5(兼容 Bootstrap 4)的完整、可直接运行的实现方案:

Magician
Magician

Figma插件,AI生成图标、图片和UX文案

下载
<!DOCTYPE html>
<html lang="zh-CN">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <title>Fixed Top Navbar with Logo & Right Nav</title>
  <!-- Bootstrap 5 CSS (CDN) -->
  <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css" rel="stylesheet">
  <style>
    /* 关键修复:确保 nav 容器占满全宽 */
    .nav-bar {
      display: flex;
      justify-content: space-between;
      align-items: center;
      position: fixed;
      top: 0;
      left: 0;
      width: 100%;
      z-index: 1030; /* 确保高于页面内容 */
      background-color: #fff;
      box-shadow: 0 2px 4px rgba(0,0,0,0.08);
      padding: 0 30px;
      height: 72px; /* 与 Bootstrap navbar 默认高度一致 */
    }

    .header-top {
      height: 72px;
      padding: 0;
      margin: 0;
    }

    .nav-links {
      display: flex;
      list-style: none;
      margin: 0;
      padding: 0;
    }

    .nav-links li {
      margin-left: 1.5rem;
    }

    .nav-links a {
      text-decoration: none;
      color: #333;
      font-weight: 500;
      padding: 0.5rem 0.75rem;
      border-radius: 4px;
      transition: background-color 0.2s;
    }

    .nav-links a:hover {
      background-color: #f8f9fa;
      color: #0d6efd;
    }

    .button-link {
      background-color: #0d6efd;
      color: white !important;
      padding: 0.5rem 1rem;
      border-radius: 4px;
      font-weight: 600;
    }

    /* 响应式适配:小屏下自动折叠为汉堡菜单(可选增强) */
    @media (max-width: 991.98px) {
      .nav-bar {
        padding: 0 15px;
      }
      .nav-links {
        position: absolute;
        top: 100%;
        right: 0;
        background: white;
        flex-direction: column;
        width: 100%;
        box-shadow: 0 4px 6px rgba(0,0,0,0.08);
        display: none;
      }
      .nav-links.show {
        display: flex;
      }
    }
  </style>
</head>
<body style="padding-top: 72px;">
  <!-- 固定顶部导航栏 -->
  <header>
    <div class="header-top">
      <nav class="nav-bar">
        <!-- 左侧 Logo -->
        <a href="#" class="d-flex align-items-center text-decoration-none">
          @@##@@
          <span class="ms-2 fs-5 fw-bold text-dark">MyApp</span>
        </a>

        <!-- 右侧导航链接 -->
        <ul class="nav-links">
          <li><a href="#home" class="nav-link">首页</a></li>
          <li><a href="#features" class="nav-link">功能</a></li>
          <li><a href="#pricing" class="nav-link">价格</a></li>
          <li><a href="#contact" class="nav-link">联系</a></li>
          <li><a href="#blog" class="button-link">博客</a></li>
        </ul>
      </nav>
    </div>
  </header>

  <!-- 示例页面内容 -->
  <main class="container mt-5">
    <h1>欢迎来到响应式站点</h1>
    <p class="lead">顶部导航栏已固定就位,支持桌面与移动设备。</p>
  </main>

  <!-- 可选:添加 JS 实现移动端菜单切换 -->
  <script>
    // 简单的移动端菜单切换逻辑(如需)
    document.addEventListener('DOMContentLoaded', () => {
      const toggleBtn = document.createElement('button');
      toggleBtn.className = 'd-lg-none btn btn-outline-primary btn-sm';
      toggleBtn.innerHTML = '☰ 菜单';
      toggleBtn.onclick = () => {
        const navLinks = document.querySelector('.nav-links');
        navLinks.classList.toggle('show');
      };
      document.querySelector('.nav-bar').append(toggleBtn);
    });
  </script>
</body>
</html>

? 关键注意事项与最佳实践:

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
class在c语言中的意思
class在c语言中的意思

在C语言中,"class" 是一个关键字,用于定义一个类。想了解更多class的相关内容,可以阅读本专题下面的文章。

603

2024.01.03

python中class的含义
python中class的含义

本专题整合了python中class的相关内容,阅读专题下面的文章了解更多详细内容。

21

2025.12.06

js正则表达式
js正则表达式

php中文网为大家提供各种js正则表达式语法大全以及各种js正则表达式使用的方法,还有更多js正则表达式的相关文章、相关下载、相关课程,供大家免费下载体验。

521

2023.06.20

js获取当前时间
js获取当前时间

JS全称JavaScript,是一种具有函数优先的轻量级,解释型或即时编译型的编程语言;它是一种属于网络的高级脚本语言,主要用于Web,常用来为网页添加各式各样的动态功能。js怎么获取当前时间呢?php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

392

2023.07.28

js 字符串转数组
js 字符串转数组

js字符串转数组的方法:1、使用“split()”方法;2、使用“Array.from()”方法;3、使用for循环遍历;4、使用“Array.split()”方法。本专题为大家提供js字符串转数组的相关的文章、下载、课程内容,供大家免费下载体验。

551

2023.08.03

js是什么意思
js是什么意思

JS是JavaScript的缩写,它是一种广泛应用于网页开发的脚本语言。JavaScript是一种解释性的、基于对象和事件驱动的编程语言,通常用于为网页增加交互性和动态性。它可以在网页上实现复杂的功能和效果,如表单验证、页面元素操作、动画效果、数据交互等。

5623

2023.08.17

js删除节点的方法
js删除节点的方法

js删除节点的方法有:1、removeChild()方法,用于从父节点中移除指定的子节点,它需要两个参数,第一个参数是要删除的子节点,第二个参数是父节点;2、parentNode.removeChild()方法,可以直接通过父节点调用来删除子节点;3、remove()方法,可以直接删除节点,而无需指定父节点;4、innerHTML属性,用于删除节点的内容。

491

2023.09.01

js截取字符串的方法
js截取字符串的方法

js截取字符串的方法有substring()方法、substr()方法、slice()方法、split()方法和slice()方法。本专题为大家提供字符串相关的文章、下载、课程内容,供大家免费下载体验。

214

2023.09.04

pixiv网页版官网登录与阅读指南_pixiv官网直达入口与在线访问方法
pixiv网页版官网登录与阅读指南_pixiv官网直达入口与在线访问方法

本专题系统整理pixiv网页版官网入口及登录访问方式,涵盖官网登录页面直达路径、在线阅读入口及快速进入方法说明,帮助用户高效找到pixiv官方网站,实现便捷、安全的网页端浏览与账号登录体验。

145

2026.02.13

热门下载

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

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Bootstrap 5教程
Bootstrap 5教程

共46课时 | 3.3万人学习

HTML+CSS基础与实战
HTML+CSS基础与实战

共132课时 | 11.1万人学习

JS进阶与BootStrap学习
JS进阶与BootStrap学习

共39课时 | 3.3万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号