代码之家  ›  专栏  ›  技术社区  ›  Riskhan

如何在引导程序5.3中对齐页面顶部的页眉、底部的页脚和它们之间的主要部分

  •  0
  • Riskhan  · 技术社区  · 3 年前

    我是新手。我在这个html页面中使用了bootstrap 5.3。现在我想在顶部对齐页眉,在底部对齐页脚,在它们之间对齐主体的大小。我尝试了以下html

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="utf-8">
        <meta name="viewport" content="width=device-width, initial-scale=1">
    
        <title>Test Webpage</title>
        <link href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" rel="stylesheet">
    <script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.bundle.min.js""></script>
        <style>
        </style>
        <body style="min-height: 100vh; background-color: rgb(100,100,100);">
        <header style="background-color: rgb(210, 210, 241);">
        Header
        </header>
        <main  style="background-color: rgb(185, 185, 215);">
        Main content
        </main>
        <footer style="background-color: rgb(235, 235, 255);">
        Footer
        </footer>
        </body>
    </head>
    

    下面的out是由上面的代码生成的

    enter image description here

    我想要输出如下

    enter image description here

    1 回复  |  直到 3 年前
        1
  •  1
  •   Rok Benko    3 年前

    您的HTML由3部分组成:

    关键是使用Bootstrap的 flex-grow-1 关于内容和 flex-shrink-0 在页脚上,将页脚一直向下推到页面底部。此外,添加Bootstrap的类 d-flex flex-column <body>

    请参阅下面的片段。

    html,
    body {
      height: 100%;
    }
    <!doctype html>
    <html lang="en">
    
    <head>
      <meta charset="utf-8">
      <meta name="viewport" content="width=device-width, initial-scale=1">
      <title>Bootstrap demo</title>
      <link href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-KK94CHFLLe+nY2dmCWGMq91rCGa5gtU4mk92HdvYe+M/SXH301p5ILy+dN9+nJOZ" crossorigin="anonymous">
    </head>
    
    <body class="d-flex flex-column">
      <!-- Header -->
      <nav class="navbar navbar-expand-lg bg-light">
        <div class="container-fluid">
          <a class="navbar-brand" href="#">Navbar</a>
          <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
              <span class="navbar-toggler-icon"></span>
            </button>
          <div class="collapse navbar-collapse" id="navbarSupportedContent">
            <ul class="navbar-nav me-auto mb-2 mb-lg-0">
              <li class="nav-item">
                <a class="nav-link active" aria-current="page" href="#">Home</a>
              </li>
              <li class="nav-item">
                <a class="nav-link" href="#">Link</a>
              </li>
              <li class="nav-item dropdown">
                <a class="nav-link dropdown-toggle" href="#" role="button" data-bs-toggle="dropdown" aria-expanded="false">
                    Dropdown
                  </a>
                <ul class="dropdown-menu">
                  <li><a class="dropdown-item" href="#">Action</a></li>
                  <li><a class="dropdown-item" href="#">Another action</a></li>
                  <li>
                    <hr class="dropdown-divider">
                  </li>
                  <li><a class="dropdown-item" href="#">Something else here</a></li>
                </ul>
              </li>
              <li class="nav-item">
                <a class="nav-link disabled">Disabled</a>
              </li>
            </ul>
            <form class="d-flex" role="search">
              <input class="form-control me-2" type="search" placeholder="Search" aria-label="Search">
              <button class="btn btn-outline-success" type="submit">Search</button>
            </form>
          </div>
        </div>
      </nav>
    
      <!-- Page content -->
      <div id="page-content" class="flex-grow-1">
        <div class="container text-center">
          <div class="row justify-content-center">
            <div class="col-md-7">
              <h1 class="fw-light mt-4 text-white">Sticky Footer using Flexbox</h1>
              <p class="lead text-white-50">Use just two Bootstrap utility classes and three custom CSS rules and you will have a flexbox enabled sticky footer for your website!</p>
            </div>
          </div>
        </div>
      </div>
    
      <!-- Footer -->
      <footer id="sticky-footer" class="flex-shrink-0 py-4 bg-dark text-white-50">
        <div class="container text-center">
          <small>Copyright &copy; Your Website</small>
        </div>
      </footer>
    
      <script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.bundle.min.js" integrity="sha384-ENjdO4Dr2bkBIFxQpeoTz1HIcje39Wm4jDKdf19U8gI4ddQ3GYNS7NTKfAdVQSZe" crossorigin="anonymous"></script>
    </body>
    
    </html>