bootstrap - 导航栏 - 交换品牌和切换

Posted

技术标签:

【中文标题】bootstrap - 导航栏 - 交换品牌和切换【英文标题】:bootstrap - navbar - exchange brand and toggle 【发布时间】:2016-12-23 01:21:44 【问题描述】:

如果视口足够小,我想在移动视图中切换品牌和切换按钮。在桌面视口中,品牌图标应位于右侧,链接应正常显示。

例子:

桌面:

+--------------------------------------------+
|Link1 Link2           BrandIcon1 BrandIcon2 |
+--------------------------------------------+

手机:

+----------------------------+
|[=]   BrandIcon1 BrandIcon2 |
+----------------------------+

编写此代码的最简单和最简洁的方法是什么?

制作了一支笔:http://codepen.io/Kaito23/pen/Wxmxgm

@import url('https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css');

.navbar-toggle 
  float:left;

.navbar-brand 
  float: right;
<nav class="navbar navbar-default">
  <div class="container-fluid">

    <div class="navbar-header">
      <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1" aria-expanded="false">
        <span class="sr-only">Toggle navigation</span>
        <span class="icon-bar"></span>
        <span class="icon-bar"></span>
        <span class="icon-bar"></span>
      </button>
    </div>

    <div class="collapse navbar-collapse">
      <ul class="nav navbar-nav navbar-left">
        <li class="active"><a href="#">Link <span class="sr-only">(current)</span></a></li>
        <li><a href="#">Link</a></li>
      </ul>
     
      <ul class="visible-xs visible-xs visible-sm visible-md visible-lg nav navbar-nav navbar-right">
        <li><a href="#"><img src="http://images.fatcow.com/icons/32/wordpress.png" /></a></li>
        <li><a href="#"><img src="http://www.wbdesignideas.com/images_drf_color.png" /></a></li>
      </ul>
    </div><!-- /.navbar-collapse -->
  </div><!-- /.container-fluid -->
</nav>

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.4/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"></script>

目前的问题是,当图标在 navbar-collapse 类中时,它们会消失。如果我把它们放在折叠 div 下,它们就在一个 新行。

提前致谢

问候 快斗

【问题讨论】:

【参考方案1】:
    让我们使用 Bootstrap 的 default navbar 并删除不必要的部分。 然后将浮动换成相反的方向。 并在第一个品牌之前添加第二个品牌。 (这是因为 float: right; 属性。)

请查看结果:http://codepen.io/glebkema/pen/PzLbmz

@import url('https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css');

@media (min-width: 768px) 
  .navbar-header 
    float: right;
  

.navbar-brand 
  float: right;

.navbar-toggle 
  float: left;
  margin-left: 15px;
  margin-right: 0;
<nav class="navbar navbar-default">
  <div class="container">
    <div class="navbar-header">
      <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar-collapse-1" aria-expanded="false">
        <span class="sr-only">Toggle navigation</span>
        <span class="icon-bar"></span>
        <span class="icon-bar"></span>
        <span class="icon-bar"></span>
      </button>
      <a class="navbar-brand" href="#">Brand 2</a>
      <a class="navbar-brand" href="#">Brand 1</a>
    </div>

    <div class="collapse navbar-collapse" id="navbar-collapse-1">
      <ul class="nav navbar-nav">
        <li><a href="#">Left 1</a></li>
        <li><a href="#">Left 2</a></li>
        <li><a href="#">Left 3</a></li>
      </ul>
    </div>
  </div>
</nav>

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.4/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"></script>

【讨论】:

以上是关于bootstrap - 导航栏 - 交换品牌和切换的主要内容,如果未能解决你的问题,请参考以下文章

在 Bootstrap 导航栏中居中品牌徽标

React-Bootstrap / React-Router-Bootstrap 中导航栏品牌的最佳实践

带有徽标或品牌名称文本的 Bootstrap 完全响应式导航栏

Bootstrap Navbar 与品牌折叠 [重复]

如何在 Bootstrap 5 中更改导航栏品牌 a:hover 背景颜色

Angular/Bootstrap - 带有可切换侧边栏的导航栏