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

Bootstrap固定导航栏与侧边栏遮挡主内容,自定义类无效怎么解决?

页面布局问题截图

你遇到的遮挡问题由三个核心错误导致:

  • HTML结构不符合规范:你将顶部导航、侧边栏这些页面内容放到了<head>标签中,且主页面和侧边栏代码里重复定义了<body>标签,结构完全混乱
  • 未遵循SB Admin模板的布局规则:你使用的是SB Admin侧边栏模板,要求主内容必须放在#layoutSidenav_content容器内才能自动偏移避开导航栏,你没有加这个容器
  • Bootstrap版本冲突:主页面引入的是Bootstrap 4,侧边栏引入的是Bootstrap 5,两个版本样式、JS互不兼容,导致布局类失效

解决步骤

步骤1:清理重复、错误的结构

  1. 把head标签里的<?php include 'navbar.php';?> <?php include 'header.php';?>移动到<body>标签最开头,head里只保留meta、CSS链接、title这些资源类内容
  2. 删掉侧边栏代码里的<body class="sb-nav-fixed">、</body>标签,以及重复引入的jQuery、popper、Bootstrap JS代码,避免重复加载
  3. 删掉主页面里引入的Bootstrap 4的CSS、JS文件,统一使用侧边栏用到的Bootstrap 5版本资源

步骤2:修正为SB Admin要求的标准布局

将你的页面结构调整为以下格式即可自动解决遮挡问题:

<!DOCTYPE html>
<html>
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <!-- 统一引入Bootstrap5 CSS -->
  <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.1.0/dist/css/bootstrap.min.css" rel="stylesheet" crossorigin="anonymous">
</head>
<body class="sb-nav-fixed">
  <?php include 'navbar.php';?> <!-- 顶部导航放这里 -->
  <div id="layoutSidenav">
    <?php include 'sideNav.php';?> <!-- 侧边栏仅保留layoutSidenav_nav部分代码放在这里 -->
    <!-- 必须添加的主内容容器,SB Admin自带样式会自动给该容器加偏移,避开导航栏 -->
    <div id="layoutSidenav_content">
      <main>
        <div class="container-fluid px-4">
          <!-- 原有主内容放在此处 -->
          <div class="row">
            <div class="col-md-12">
              <?php
                if(isset($_SESSION['status']) && $_SESSION['status'] !='') 
                {
                  echo '
                  <div class="alert alert-warning alert-dismissible fade show" role="alert">
                    <strong>注意!</strong> '.$_SESSION['status'].'
                    <button type="button" class="close" data-bs-dismiss="alert" aria-label="关闭">
                      <span aria-hidden="true">&times;</span>
                    </button>
                  </div>
                  ';
                  unset($_SESSION['status']);
                }
              ?>
              <!-- 你的表格代码放在此处 -->
            </div>
          </div>
        </div>
      </main>
    </div>
  </div>
  <!-- 所有JS统一放在body末尾,不要重复引入 -->
  <script src="https://code.jquery.com/jquery-3.4.1.min.js"></script>
  <script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.0/dist/umd/popper.min.js" integrity="sha384-Q6E9RHvbIyZFJoft+2mJbHaEWldlvI9IOYy5n3zV9zzTtmI3UksdQRVvoxMfooAo" crossorigin="anonymous"></script>
  <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.1.0/dist/js/bootstrap.bundle.min.js" crossorigin="anonymous"></script>
  <script src="https://www.gstatic.com/firebasejs/7.14.0/firebase-app.js"></script>
  <script src="https://www.gstatic.com/firebasejs/7.14.0/firebase-analytics.js"></script>
  <script src="https://www.gstatic.com/firebasejs/7.14.0/firebase-auth.js"></script>
  <script src="https://www.gstatic.com/firebasejs/7.14.0/firebase-firestore.js"></script>
</body>
</html>

备选方案:手动加偏移样式

如果你不想调整结构,可以直接给主内容容器加以下自定义样式:

.mainContainer {
  /* 顶部导航高度一般是56px,可根据你的实际导航高度调整 */
  padding-top: 56px;
  /* 侧边栏展开宽度是225px,可根据你的侧边栏实际宽度调整 */
  margin-left: 225px;
}
/* 响应式适配:屏幕宽度小于768px时侧边栏收起,取消左边距 */
@media (max-width: 767.98px) {
  .mainContainer {
    margin-left: 0;
  }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 12:45:07