在 Bootstrap 中,创建导航栏的最平台友好方式是什么?左侧是徽标A,中间是菜单项,右侧是徽标B?
这是我到目前为止所尝试的,它最终被对齐,以便徽标A位于左侧,菜单项位于左侧徽标旁边,徽标B位于右侧 .
<div class="navbar navbar-fixed-top navbar-custom ">
<div class="container" >
<div class="navbar-header">
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand" href="#"><span class="navbar-logo">Logo_A</span></a>
</div>
<div class="collapse navbar-collapse">
<ul class="nav navbar-nav">
<li class="active"><a href="#">Home</a></li>
<li><a href="#about">Menu Item 1</a></li>
<li><a href="#contact">Menu Item 2</a></li>
<li><a href="#about">Menu Item 3</a></li>
</ul>
<ul class="nav navbar-nav navbar-right">
<li><a href="#"><img src="images/Logo_B.png" class="img-responsive"></a></li>
</ul>
</div>
</div>
</div>
7 回答
2018 Update
Bootstrap 4
现在Bootstrap 4有了flexbox,Navbar对齐就容易多了 . 这是updated examples for left, right and center in the Bootstrap 4 Navbar和many other alignment scenarios demonstrated here .
flexbox,auto-margins和ordering实用程序类可用于根据需要对齐Navbar内容 . 有许多事情需要考虑,包括大屏幕和移动/折叠视图上Navbar项目(品牌,链接,切换器)的顺序和对齐方式 . 以下是几个例子......
Left, center(brand) and right links:
http://www.codeply.com/go/qhaBrcWp3v
使用center links and overlay logo image的另一个BS4 Navbar选项:
Or ,brand left, dead center links, (empty right)
Or ,brand and links center, icons left and right
另见:Bootstrap 4 align navbar items to the right
Bootstrap 3
Option 1 - 品牌中心,左/右导航链接:
http://bootply.com/98314
Option 2 - 左,中,右导航链接:
http://www.bootply.com/SGYC6BWeBK
Option 3 - 以品牌和链接为中心
http://www.codeply.com/go/1lrdvNH9GI
More examples:
Left brand, center links
Left toggler, center brand
对于3.x也请参见nav-justified:Bootstrap center navbar
Center Navbar in Bootstrap
Bootstrap 4 align navbar items to the right
我需要类似的东西(左,中,右对齐的项目),但能够将居中的项目标记为活动 . 对我有用的是:
http://www.bootply.com/CSI2KcCoEM
CSS:
我发现以下是一个更好的解决方案,取决于您的左,中,右项目的内容 . 没有边距的100%的宽度导致div的重叠并且阻止锚标签正常工作 - 这没有杂乱地使用z索引 .
最简单的解决方案:
只需将
navbar
分成列:例如,如果你有24列,那么12个将是空的,12个将禁止导航栏:Bootstrap 4(截至alpha 6)
对于Align Right,在
collapse
div上使用justify-content-end
:这里有完整的例子:https://jsbin.com/kemawa/edit?output
轻拍我的脑袋,重新阅读我的答案,并意识到OP正在要求左边的两个标志一个带有中心菜单,而不是相反 .
这可以通过使用Bootstrap的“navbar-right”和“navbar-left”用于徽标,然后使用“nav-justified”而不是“navbar-nav”为您的UL严格在HTML中完成 . 不需要额外的CSS(除非你想在xs视口的中心放置导航栏折叠切换,然后你需要覆盖一点,但会留给你) .
Bootply:http://www.bootply.com/W6uB8YfKxm
对于那些试图将“品牌”集中在这里的人来说,这是我的老答案:
我知道这个帖子有点旧,但只是在处理这个问题时发表我的发现 . 自从tomaszbak在collaspe上休息以来,我决定将我的解决方案 Build 在skelly的答案上 . 首先,我创建了我的“navbar-center”并关闭了我的CSS中普通导航栏的浮动:
然而,skelly回答的问题是,如果你有一个很长的品牌名称(或者你想为你的品牌使用一个图像)那么一旦你到达sm视口,由于绝对位置和评论者有可能会有重叠说,一旦你到达xs视口,切换开关就会断开(除非你使用Z定位,但我真的不想担心它) .
所以我所做的就是利用bootstrap responsive utilities来创建品牌块的多个版本:
所以现在lg和md视口的品牌以左右链接为中心,一旦你到达sm视口,你的链接就会下降到下一行,这样你就不会与你的品牌重叠,最后是xs视口collaspe踢,你可以使用切换 . 您可以更进一步,在与navbar-brand一起使用时修改navbar-right和navbar-left的媒体查询,以便在sm视口中链接全部居中但没有时间审核 .
你可以在这里查看我的旧bootply:www.bootply.com/n3PXXropP3
我想有3个品牌可能和“z”一样麻烦,但我觉得在响应式设计的世界里,这个解决方案更符合我的风格 .
这是一个过时的问题,但我发现了一个可以从bootstrap github页面共享的替代解决方案 . 文档尚未更新,并且在SO上有其他问题要求相同的解决方案,尽管问题略有不同 . 此解决方案并非特定于您的情况,但正如您所看到的那样,解决方案是在
<nav class="navbar navbar-default navbar-fixed-top">
之后的<div class="container">
,但也可以根据需要替换为<div class="container-fluid"
.解决方案是在这个页面上的小提琴上找到的:https://github.com/twbs/bootstrap/issues/18362
并列为V3中不会修复的内容 .