导航栏水平折叠并显示导航项

时间:2017-01-14 20:58:59

标签: javascript jquery html css twitter-bootstrap

我有一个带有按钮和nav brand的导航栏,当我点击按钮时,项目会显示在下方,因为它正在折叠,但我需要它水平折叠。我在这里看到了一些问题,但仍然无法实现我的需求。

here is the sketch of what i need

<nav class="navbar navbar-light" style="background-color: #2C3E50 ;">
    <button class="navbar-toggler navbar-toggler-left" 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>
    <h1 class="navbar-brand mb-0 move-header ">NavBrand</h1>
    <div class="collapse width" 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="#">Disabled</a> </li>
        </ul>
    </div>
</nav>

// CSS

     .navbar {
    margin-top: 40px;
    display: inline-block;
}
    .navbar {
    border-bottom-right-radius: 200px;
    border-top-right-radius: 200px;
}

1 个答案:

答案 0 :(得分:1)

您可以使用此技术执行此操作:

.navbar-nav { white-space: nowrap; }
.nav-item { display: inline-block; }

或使用flexbox:

.navbar-nav { display: flex; flex-flow: row nowrap; }

第一种解决方案可防止线条断开,并指定菜单项具有内联行为。第二种解决方案基于使用flexbox布局。

<强> 已更新

使用bootstrap 4需要进行一些修改,添加:

.navbar-nav {
  flex-flow: row nowrap;
}

.navbar {
    flex-flow: row nowrap;
    display: inline-flex;
}