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

如何将Bootstrap底部导航栏固定在页面底部且避免内容遮挡?

解决Bootstrap短页面footer居中、长页面内容被遮挡的问题

这个问题其实很常见,核心是要实现粘性页脚(Sticky Footer)——短页面时footer固定在视口底部,长页面时footer正常跟随内容下方,不会遮挡内容。不用fixed-bottom,用Bootstrap 4的flex布局就能轻松搞定,步骤如下:

1. 调整页面结构的flex布局

给<body>标签添加flex相关的类和最小高度,让整个页面成为垂直方向的flex容器:

<body class="d-flex flex-column" style="min-height: 100vh;">
  • d-flex:把body设为flex容器
  • flex-column:设置flex方向为垂直(从上到下)
  • min-height: 100vh:让body最小高度占满整个视口高度

2. 让主内容区域填充剩余空间

找到你中间的内容容器(就是那个包含Lorem ipsum的.container),给它添加flex-grow-1类,这样它会自动填充header和footer之外的所有剩余空间,把footer推到底部:

<div class="container py-5 flex-grow-1">
  Lorem ipsum
</div>
  • flex-grow-1:让这个容器在flex布局中“伸展”,占满可用空间

3. 移除footer的fixed-bottom类

把底部导航栏的fixed-bottom去掉,保持原来的样式即可,现在它会根据页面内容自动定位:

<nav class="navbar navbar-light bg-light">
  <div class="container">
    <a class="nav-link" href="privacy.php">سیاست حریم خصوصی</a>
    <p>کلیه حقوق این سایت محفوظ است.</p>
  </div>
</nav>

修改后的完整代码

<!doctype html>
<html lang="fa">
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
  <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous">
  <link href="css/style.css" rel="stylesheet">
  <link rel="stylesheet" href="jqueryui/jquery-ui.min.css">
  <script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script>
  <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js" integrity="sha384-UO2eT0CpHqdSJQ6hJty5KVphtPhzWj9WO1clHTMGa3JDZwrnQq4sF86dIHNDz0W1" crossorigin="anonymous"></script>
  <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js" integrity="sha384-JjSmVgyd0p3pXB1rRibZUAYoIIy6OrQ6VrjIEaFf/nJGzIxFDsf4x0xIM+B07jRM" crossorigin="anonymous"></script>
  <title></title>
</head>
<body class="d-flex flex-column" style="min-height: 100vh;">
  <nav class="navbar navbar-expand-lg navbar-light bg-light">
    <a class="navbar-brand" href="index.php">
      <img src="http://getbootstrap.com/docs/4.3/assets/brand/bootstrap-solid.svg" width="30" height="30" alt=""></a>
    <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarNavDropdown" aria-controls="navbarNavDropdown" aria-expanded="false" aria-label="Toggle navigation">
      <span class="navbar-toggler-icon"></span>
    </button>
    <div class="collapse navbar-collapse" id="navbarNavDropdown">
      <ul class="navbar-nav">
        <li class="nav-item active">
          <a class="nav-link" href="index.php">خانه<span class="sr-only">(current)</span></a>
        </li>
        <li class="nav-item">
          <a class="nav-link" href="about.php">درباره ما</a>
        </li>
        <li class="nav-item dropdown">
          <a class="nav-link dropdown-toggle" href="#" id="navbarDropdownMenuLink" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
            حساب کاربری
          </a>
          <div class="dropdown-menu" aria-labelledby="navbarDropdownMenuLink">
            <a class="dropdown-item" href="signup.php">ثبت نام</a>
            <a class="dropdown-item" href="login.php">ورود</a>
          </div>
        </li>
      </ul>
    </div>
  </nav>
  <div class="container py-5 flex-grow-1">
    Lorem ipsum
  </div>
  <nav class="navbar navbar-light bg-light">
    <div class="container">
      <a class="nav-link" href="privacy.php">سیاست حریم خصوصی</a>
      <p>کلیه حقوق این سایت محفوظ است.</p>
    </div>
  </nav>
</body>
</html>

原理说明

这种方式利用了flex布局的特性:

  • 整个页面作为垂直flex容器,最小高度占满视口
  • 主内容区域设置flex-grow:1,会自动填充header和footer之间的所有空白空间
  • 当内容足够长时,页面会正常滚动,footer跟着内容下方;当内容较短时,footer会被“推”到视口底部,完美解决你的两个问题

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 08:15:14