我正在尝试为我的网站设计导航栏,以便在桌面和移动模式下使用。
我已经创建了一个JS Fiddle here
这是目前为止的html:
<div class="container-fluid">
<nav class="navbar navbar-expand-sm navbar-light">
<a class="navbar-brand" href="#">Navbar</a>
<button class="navbar-toggler" 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>
<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 dropdown">
<a class="nav-link dropdown-toggle" href="#" id="navbarDropdown" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
Dropdown
</a>
<div class="dropdown-menu" aria-labelledby="navbarDropdown">
<a class="dropdown-item" href="#">Action</a>
<a class="dropdown-item" href="#">Another action</a>
<div class="dropdown-divider"></div>
<a class="dropdown-item" href="#">Something else here</a>
</div>
</li>
<li class="nav-item">
<a class="nav-link disabled" href="#">Disabled</a>
</li>
</ul>
<div class="row no-gutters ml-auto">
<div class="col-3">
<button class="btn btn-outline-warning btn-sm mr-1" data-toggle='modal' data-target='#login'>
<i class="fas fa-sign-in-alt mr5"></i>
Login
</button>
</div>
<div class="col-6 ml-auto">
<form class="form-inline mr-1" action='/search' method='POST'>
<div class="input-group input-group-sm mx-auto">
<input type="text" class="form-control" name='search_string' placeholder="Search" value=''>
<div class="input-group-append">
<button class="btn btn-outline-warning" type="submit"><i class="fas fa-search mr5"></i></button>
</div>
</div>
</form>
</div>
<div class="col-3 text-right">
<div class="dropdown">
<button class="btn btn-outline-warning btn-sm dropdown-toggle" type="button" id="dropdownMenuButton" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
Dropdown
</button>
<div class="dropdown-menu dropdown-menu-right" aria-labelledby="dropdownMenuButton">
<a class="dropdown-item" href="#">Dropdown Option</a>
<a class="dropdown-item" href="#">Dropdown Option</a>
<a class="dropdown-item" href="#">Dropdown Option</a>
<a class="dropdown-item" href="#">Dropdown Option</a>
<a class="dropdown-item" href="#">Dropdown Option</a>
<a class="dropdown-item" href="#">Dropdown Option</a>
<a class="dropdown-item" href="#">Dropdown Option</a>
</div>
</div>
</div>
</div>
</div>
</nav>
</div>我希望右对齐的菜单项(在行中)紧邻在一起(就像每个菜单项上的mr-1间距)--但在桌面模式下,col类会在它们之间添加间距。然而,当窗口变小时,我希望当你下拉菜单时,它们是在cols中,并且间隔得很好。我尝试过使用flex-row,但是无论我怎么尝试,我都不能让它工作。我不确定在导航栏中放置一行是正确的方法。我对bootstrap4还很陌生,所以我不确定最好的方法是什么。感谢您的帮助。
最终,我希望我的菜单是这样的,但我不知道如何在BootStrap 4中构建它:
在LG中:

和XS屏幕尺寸:

(我无法让Menu 1完全移动到右侧,使其与下拉菜单对齐)
我可以很容易地在bootstrap3中做到这一点,但由于某些原因,我正在努力掌握4的工作方式。它不一定非得是一个导航栏,如果上面所说的只需要行和列就可以实现,我很乐意听到它。
发布于 2020-03-11 08:12:20
您可以尝试添加push / pull,如下所示,https://www.w3schools.com/bootstrap/tryit.asp?filename=trybs_grid_ex9&stacked=h是一种选择。在您的第一行,您可以通过两种方式实现此结果,一种是使用offfset,如下所示。示例中使用的是中等大小,您需要根据您的特定布局更改它。
<div class="row row-fluid"> // row to be inside of a container
<div class="col-md-2">
Your burger-menu here
</div>
<div class="col-md-2 offset-md-8">
Your burger-menu here
</div>
</div>然后,为登录搜索下拉菜单开始一个新行,但仍然在同一个conatiner中
<div class="row row-fluid">
<div class="col-md-2">
login code
</div>
<div class="col-md-8">
search code
</div>
<div class="col-md-2">
dropdown code
</div>
</div>显然,就像在Bootstrap 3中一样,您需要将列设置为适用于所有不同的大小。如果上面的方法不适用于您的布局,那么可以尝试使用push和pull方法来使用您当前的配置将div移到适当的位置。
https://stackoverflow.com/questions/60625823
复制相似问题