0

我正在使用 Bootstrap 4 并试图使导航项与我的导航栏具有相同的高度,这样当我向其添加背景颜色时,它看起来就像通过导航栏的条纹。

最初,该项目居中并在顶部和下方留有空间。我添加了负边距以使其靠在顶部,但是当我尝试添加“margin-bottom”时同样没有用

然后我尝试修复导航栏的高度,但是当我这样做并单击切换以降低导航栏项目时,它们没有显示出来,因为固定的高度阻止了它出现。

<body>
<nav class="navbar navbar-dark bg-dark text-center">
    <div class="container">
        <div class="mr-auto order-0" class= "d-flex align-items-stretch">
            <a class="navbar-brand ml-auto" style="background-color:red; line-height: 58px; margin-top:-9px; padding: 0 20px 0 20px;" class="nav-item active" href="#">Matthew Krebs</a>           
        </div>
        <a class="navbar-brand text-center" href="#"></a>
        <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarResponsive"
            aria-controls="navbarResponsive" aria-expanded="false" aria-label="Toggle navigation">
            <span class="navbar-toggler-icon"></span>
        </button>
        <div class="collapse navbar-collapse" id="navbarResponsive">
            <ul class="navbar-nav ml-auto mx-auto">
                <li class="nav-item active">
                    <a class="nav-link" href="#">Home
                    </a>
                </li>
                <li class="nav-item">
                    <a class="nav-link" href="#">About</a>
                </li>
            </ul>
        </div>
    </div>
</nav>
</body>
4

3 回答 3

0

一些东西:

  • 我将内联 CSS 更改为单独的类,仅用于红色背景
  • 添加了nav-link类,以便您可以看到nav-item顶部的行为以及单击汉堡菜单时显示的行为
  • 该类navbar有一个填充,我们必须覆盖它以处理条纹外观
  • 确保在引导后加载您的 CSS,以便您可以在不使用的情况下覆盖它!important

下面的工作片段

<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.16.0/umd/popper.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.4.1/js/bootstrap.min.js"></script>

<nav class="navbar navbar-dark bg-dark text-center">
  <div class="container">
    <div class="mr-auto order-0" class="d-flex align-items-stretch">
      <a class="nav-item  nav-link my-custom-style" href="#">Matthew Krebs</a>
    </div>
    <a class="navbar-brand text-center" href="#"></a>
    <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarResponsive" aria-controls="navbarResponsive" aria-expanded="false" aria-label="Toggle navigation">
            <span class="navbar-toggler-icon"></span>
        </button>
    <div class="collapse navbar-collapse" id="navbarResponsive">
      <ul class="navbar-nav ml-auto mx-auto">
        <li class="nav-item active">
          <a class="nav-link" href="#">Home
                    </a>
        </li>
        <li class="nav-item">
          <a class="nav-link" href="#">About</a>
        </li>
      </ul>
    </div>
  </div>
</nav>
<style>
.navbar {
  padding-top: 0;
  padding-bottom: 0;
}
/* just to highlight our nav-item */

.my-custom-style {
  background-color: red;
}

.nav-link {
  border: 1px dotted yellow;
}
</style>

于 2019-12-30T20:42:03.420 回答
0

<nav>只需从元素中删除填充即可达到所需的效果。最简单的方法是将p-0类添加到<nav>. Bootstrap 包括几个边距和填充实用程序类。在这里阅读它们

<nav class="navbar navbar-dark bg-dark text-center p-0">
  <div class="container">
    <div class="mr-auto order-0" class="d-flex align-items-stretch">
      <a class="navbar-brand ml-auto"class="nav-item active" href="#">
        Matthew Krebs
      </a>
    </div>
    <button class="navbar-toggler" data-toggle="collapse" data-target="#navbarResponsive">
      <span class="navbar-toggler-icon"></span>
    </button>
    <div class="collapse navbar-collapse" id="navbarResponsive">
      <ul class="navbar-nav ml-auto mx-auto">
        <li class="nav-item active">
          <a class="nav-link" href="#">Home
          </a>
        </li>
        <li class="nav-item">
          <a class="nav-link" href="#">About</a>
        </li>
      </ul>
    </div>
  </div>
</nav>

代码笔示例。

于 2019-12-31T08:02:13.350 回答
0

干得好!

<!doctype html>
<html lang="en">
  <head>
    <!-- Required meta tags -->
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">

    <!-- Bootstrap CSS -->
    <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.5.3/dist/css/bootstrap.min.css" integrity="sha384-TX8t27EcRE3e/ihU7zmQxVncDAy5uIKz4rEkgIXeMed4M0jlfIDPvg6uqKI2xXr2" crossorigin="anonymous">

    <title>Hello, world!</title>
  </head>
  <body>
    <nav style="padding-top: 0px; padding-bottom: 0px;" class="navbar navbar-expand-lg navbar-light bg-light" id="navbar">
      <a class="navbar-brand" href="#">Navbar</a>
      <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarNav" aria-controls="navbarNav" aria-expanded="false" aria-label="Toggle navigation">
        <span class="navbar-toggler-icon"></span>
      </button>

      <div class="collapse navbar-collapse" id="navbarNav">
        <ul class="navbar-nav">
          <li class="nav-item active">
            <a class="nav-link" href="#">Home <span class="sr-only">(current)</span></a>
          </li>
          <li class="nav-item">
            <a class="nav-link" href="#">Features</a>
          </li>
          <li class="nav-item">
            <a class="nav-link" href="#">Pricing</a>
          </li>
          <li class="nav-item">
            <a class="nav-link disabled" href="#" tabindex="-1" aria-disabled="true">Disabled</a>
          </li>
        </ul>
      </div>
    </nav>
    <h1>Hello, world!</h1>

    <!-- Optional JavaScript; choose one of the two! -->

    <!-- Option 1: jQuery and Bootstrap Bundle (includes Popper) -->
    <script src="https://code.jquery.com/jquery-3.5.1.slim.min.js" integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj" crossorigin="anonymous"></script>
    <script src="https://cdn.jsdelivr.net/npm/bootstrap@4.5.3/dist/js/bootstrap.bundle.min.js" integrity="sha384-ho+j7jyWK8fNQe+A12Hb8AhRq26LrZ/JpcUGGOn+Y7RsweNrtN/tE3MoK7ZeZDyx" crossorigin="anonymous"></script>

    <!-- Option 2: jQuery, Popper.js, and Bootstrap JS
    <script src="https://code.jquery.com/jquery-3.5.1.slim.min.js" integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj" crossorigin="anonymous"></script>
    <script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.1/dist/umd/popper.min.js" integrity="sha384-9/reFTGAW83EW2RDu2S0VKaIzap3H66lZH81PoYlFhbGU+6BZp6G7niu735Sk7lN" crossorigin="anonymous"></script>
    <script src="https://cdn.jsdelivr.net/npm/bootstrap@4.5.3/dist/js/bootstrap.min.js" integrity="sha384-w1Q4orYjBQndcko6MimVbzY0tgp4pWB4lZ7lr30WKz0vr/aWKhXdBNmNb5D92v7s" crossorigin="anonymous"></script>
    -->
    <script>
      document.querySelectorAll(".nav-item").forEach(item => {
        item.style.height = document.getElementById("navbar").offsetHeight;
        item.style.backgroundColor = 'aqua';
        item.style.marginRight = '5px';

      })
    </script>
  </body>
</html>

于 2020-12-21T10:12:50.637 回答