【问题标题】:Bootstrap 4 Separators in navbar导航栏中的 Bootstrap 4 分隔符
【发布时间】:2019-06-14 07:32:08
【问题描述】:

我试图在nav-items 之间的navbar 中放置分隔符,但我不知道如何在nav-item 之间的相等范围内的分隔符上设置填充。

我的第二个问题是,toggle-navbar 中出现了分隔符(当navbar 折叠时),我试图删除它们,但没有成功。

如果有人知道创建分隔符的更好方法,我将不胜感激。

这是我的代码:

.navbar-nav > li > a::after {
    content: "|";
    padding: 0 5px
}
<div class="collapse navbar-collapse" id="navbarResponsive">
  <!--
  1) collapse - class dedicate to a given alement
  2) navbar-collapse:  show elements to bootstrap which belong to navbar, then use function - collapse
  -->
  <ul class="navbar-nav ml-auto">
    <li class="nav-item active">
      <a class="nav-link" href="#">O nas</a>
    </li>
    <li class="nav-item active">
      <a class="nav-link" href="#">Cennik</a>
    </li>
    <li class="nav-item active">
      <a class="nav-link" href="#">Usługi</a>
    </li>
    <li class="nav-item active">
      <a class="nav-link" href="#">Rejestracja</a>
    </li>
    <li class="nav-item active">
      <a class="nav-link" href="#">Porady</a>
    </li>
  </ul>
</div>

【问题讨论】:

  • 您能否提供一张您尝试实现的目标的图片?我真的不明白你想做什么
  • 我刚刚在我的帖子中添加了图片链接。分隔符,我的意思是这些垂直线

标签: html css bootstrap-4


【解决方案1】:

也许nav-items 上的border-right CSS 样式会起作用,您可以在特定的break-point 上禁用它们(MD 是下一个示例中选择的断点)。

.border-md-right {
  border-right: 1px solid silver;
}

@media (max-width: 768px) {

  .border-md-right {
    border-right: none;
  }

}
<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.6/umd/popper.min.js" integrity="sha384-wHAiFfRlMFy6i5SRaxvfOCifBUQy1xHdJ/yoi7FRNXMRBu5WHdZYu1hA6ZOblgut" crossorigin="anonymous"></script>
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.2.1/css/bootstrap.min.css" integrity="sha384-GJzZqFGwb1QTTN6wy59ffF1BuGJpLSa9DkKMp0DgiMDm4iYMj70gZWKYbI706tWS" crossorigin="anonymous">
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.2.1/js/bootstrap.min.js" integrity="sha384-B0UglyR+jN6CkvvICOB2joaf5I4l3gm9GU6Hc1og6Ls7i6U/mkkaduKaBhlAXv9k" crossorigin="anonymous"></script>

<nav class="navbar navbar-expand-md navbar-dark bg-dark">
  <a class="navbar-brand" href="#">Navbar</a>

  <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarResponsive" aria-controls="navbarSupportedContent" 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">
      <li class="nav-item active border-md-right">
        <a class="nav-link" href="#">O nas</a>
      </li>
      <li class="nav-item active border-md-right">
        <a class="nav-link" href="#">Cennik</a>
      </li>
      <li class="nav-item active border-md-right">
        <a class="nav-link" href="#">Usługi</a>
      </li>
      <li class="nav-item active border-md-right">
        <a class="nav-link" href="#">Rejestracja</a>
      </li>
      <li class="nav-item active">
        <a class="nav-link" href="#">Porady</a>
      </li>
    </ul>
  </div>
  
</nav>

【讨论】:

  • 谢谢!我一直在寻找这样的东西。这解决了我的问题:)
  • @Mr.Daniel 如果对您有帮助,请考虑投票并检查答案是否正确,谢谢!
【解决方案2】:

@Shidersz 解决方案应该有效。如果您不想在每个 li 中添加额外的类,则另一种解决方案。如果你有一个动态菜单并且你必须将这个类添加到除了最后一个元素之外的每个元素,也可能会有点困难!

.navbar-nav .nav-item:not(:last-child) {
   border-right: 1px solid silver;
}

@media (max-width: 768px) {
  .navbar-nav .nav-item:not(:last-child) {
    border-right: none;
  }
}
<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.6/umd/popper.min.js" integrity="sha384-wHAiFfRlMFy6i5SRaxvfOCifBUQy1xHdJ/yoi7FRNXMRBu5WHdZYu1hA6ZOblgut" crossorigin="anonymous"></script>
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.2.1/css/bootstrap.min.css" integrity="sha384-GJzZqFGwb1QTTN6wy59ffF1BuGJpLSa9DkKMp0DgiMDm4iYMj70gZWKYbI706tWS" crossorigin="anonymous">
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.2.1/js/bootstrap.min.js" integrity="sha384-B0UglyR+jN6CkvvICOB2joaf5I4l3gm9GU6Hc1og6Ls7i6U/mkkaduKaBhlAXv9k" crossorigin="anonymous"></script>

<nav class="navbar navbar-expand-md navbar-dark bg-dark">
  <a class="navbar-brand" href="#">Navbar</a>

  <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarResponsive" aria-controls="navbarSupportedContent" 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">
      <li class="nav-item active">
        <a class="nav-link" href="#">O nas</a>
      </li>
      <li class="nav-item active">
        <a class="nav-link" href="#">Cennik</a>
      </li>
      <li class="nav-item active">
        <a class="nav-link" href="#">Usługi</a>
      </li>
      <li class="nav-item active">
        <a class="nav-link" href="#">Rejestracja</a>
      </li>
      <li class="nav-item active">
        <a class="nav-link" href="#">Porady</a>
      </li>
    </ul>
  </div>
  
</nav>

【讨论】:

    【解决方案3】:

    这对我使用 Bootstrap 4 有效

    .navbar-nav > li > a::after {
        content:'|';
        padding-left:10px;
        @media (max-width: 767px) {
            content: none;
            padding-left:0;
        }
    }
     .navbar-nav > li:last-child > a::after {
             content:none;
    }
    

    【讨论】:

    • 使用last-child.. 的解决方案很好。虽然格式有点不对,第一行没有显示,所以我编辑将反引号移动到单独的行
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-08
    • 2018-07-19
    • 2017-08-04
    • 2019-02-04
    相关资源
    最近更新 更多