Html Bootstrap 4 中的堆叠式可折叠导航栏

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/33486653/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-08-29 18:27:01  来源:igfitidea点击:

Stacked collapsible navbar in bootstrap 4

htmlcsstwitter-bootstrapbootstrap-4

提问by Iter Ator

I would like to create a collapsible navbar. Everything works, but the navitems aren't stacked under each other like it should be. They are horizontally next to each other.

我想创建一个可折叠的navbar. 一切正常,但nav物品并没有像应有的那样相互堆叠。它们水平相邻。

Code:

代码:

<nav class="navbar navbar-light bg-faded" role="navigation">
    <button class="navbar-toggler hidden-sm-up" type="button" data-toggle="collapse" data-target="#collapsing-navbar">
        &#9776;
    </button>

    <div class="collapse navbar-toggleable-xs" id="collapsing-navbar">   
        <a class="navbar-brand" href="/">Logo</a>

        <ul class="nav navbar-nav">
            <li class="nav-item">
                <a href="/messages" class="nav-link">Messages</a>
            </li>

            <li class="nav-item">
                <a href="/logout" class="nav-link">Logout</a>
            </li>
        </ul>
    </div>
</nav>

Screenshot:

截屏:

bootstrap4 error

bootstrap4 错误

回答by max

Bootstrap 4 Alpha 6 (since alpha 6 version stacked menu is built in - no need to use extra CSS):

Bootstrap 4 Alpha 6(因为内置了 alpha 6 版本的堆叠菜单 - 无需使用额外的 CSS):

<nav class="navbar navbar-toggleable-md navbar-light bg-faded">
  <button class="navbar-toggler navbar-toggler-right" type="button" data-toggle="collapse" data-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
    <span class="navbar-toggler-icon"></span>
  </button>
  <a class="navbar-brand" href="#">Navbar</a>

  <div class="collapse navbar-collapse" id="navbarSupportedContent">
    <ul class="navbar-nav mr-auto">
      <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="#">Link</a>
      </li>
      <li class="nav-item">
        <a class="nav-link disabled" href="#">Disabled</a>
      </li>
    </ul>
    <form class="form-inline my-2 my-lg-0">
      <input class="form-control mr-sm-2" type="text" placeholder="Search">
      <button class="btn btn-outline-success my-2 my-sm-0" type="submit">Search</button>
    </form>
  </div>
</nav>

CODEPEN

代码笔

回答by Zim

It seems that it's easier done with this CSS override:

使用此 CSS 覆盖似乎更容易完成:

@media(max-width:768px) {
    .navbar .navbar-nav>.nav-item {
        float: none;
        margin-left: .1rem;
    }
    .navbar .navbar-nav {
        float:none !important;
    }
    .navbar .collapse.in, .navbar .collapsing  {
        clear:both;
    }
}

http://codeply.com/go/Ar1H2G4JVH

http://codeply.com/go/Ar1H2G4JVH

UPDATE

更新

As of BS4 alpha 6, the extra CSS is no longer needed. The navbar markup has changed. http://www.codeply.com/go/0OMz6nfPLr

从 BS4 alpha 6 开始,不再需要额外的 CSS。导航栏标记已更改。 http://www.codeply.com/go/0OMz6nfPLr

回答by mwilson

As of Bootstrap 4 Alpha 5you can leverage a collapseplugin:

Bootstrap 4 Alpha 5 开始,您可以利用collapse插件:

http://v4-alpha.getbootstrap.com/components/navbar/

http://v4-alpha.getbootstrap.com/components/navbar/

<nav class="navbar navbar-light bg-faded">
  <button class="navbar-toggler hidden-lg-up" type="button" data-toggle="collapse" data-target="#navbarResponsive" aria-controls="navbarResponsive" aria-expanded="false" aria-label="Toggle navigation"></button>
  <div class="collapse navbar-toggleable-md" id="navbarResponsive">
    <a class="navbar-brand" href="#">Navbar</a>
    <ul class="nav 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="#">Link</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="http://example.com" id="responsiveNavbarDropdown" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">Dropdown</a>
        <div class="dropdown-menu" aria-labelledby="responsiveNavbarDropdown">
          <a class="dropdown-item" href="#">Action</a>
          <a class="dropdown-item" href="#">Another action</a>
          <a class="dropdown-item" href="#">Something else here</a>
        </div>
      </li>
    </ul>
    <form class="form-inline float-lg-right">
      <input class="form-control" type="text" placeholder="Search">
      <button class="btn btn-outline-success" type="submit">Search</button>
    </form>
  </div>
</nav>

回答by Imran Ahmad

Bootstrap 4 shows a little different user experience when collapsible menu is concerned.

当涉及可折叠菜单时,Bootstrap 4 显示了一些不同的用户体验。

In alpha release it looks like this. However the issue is still open Here, we may see some changes in next release.

在 alpha 版本中它看起来像这样。但是问题仍然存在在这里,我们可能会在下一个版本中看到一些变化。