html - 在所有屏幕尺寸上保留导航元素

标签 html css twitter-bootstrap

我正在尝试构建一个 Bootstrap 导航栏,其左侧有导航链接,右侧有一些用户图标。
在移动设备上,导航链接应该折叠,但图标应该保留(甚至居中?)到汉堡图标。

它在桌面上看起来不错(宽度> 768px)。但在较小的宽度上,图标显示在彼此下方,而不是彼此相邻。

这是迄今为止我的代码:

<nav class="navbar navbar-inverse navbar-fixed-top bo-header">
  <div class="container">
    <div class="navbar-header">
      <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar">
        <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="#">MY BRAND</a>
    </div>
    <!-- non-collapsing items -->
    <div class="navbar-header navbar-right">
      <ul class="nav navbar-nav">
        <li><a href="#"><i class="fa fa-envelope"></i></a></li>
        <li><a href="#"><i class="fa fa-users"></i></a></li>
        <li><a href="#"><i class="fa fa-wrench"></i></a></li>
      </ul>
    </div>
    <div id="navbar" class="collapse navbar-collapse">
      <ul class="nav navbar-nav">
        <li><a href="#">Nav Entry 1</a></li>
        <li><a href="#">Nav Entry 2</a></li>
        <li><a href="#">Nav Entry 3</a></li>
        <li><a href="#">Nav Entry 4</a></li>
      </ul>
    </div><!--/.nav-collapse -->
  </div>
</nav>

工作中的jsfiddle: http://jsfiddle.net/n9KtL/188/

感谢您的帮助!

最佳答案

下面是一个示例,说明如何将图标保留在导航栏容器内(以便navbar内的所有元素保持一致),然后将图标放置在保持暴露的位置视口(viewport)低于 768px。

@media (max-width: 767px) {
  .navbar .navbar-right.navbar-top {
    position: absolute;
    margin-top: 4px;
    right: 80px;
  }
  .navbar .navbar-right.navbar-top > li {
    display: inline-block;
  }
  .navbar .navbar-right.navbar-top > li > a {
    padding-right: 10px;
    padding-left: 10px;
  }
}
<link href="https://maxcdn.bootstrapcdn.com/font-awesome/4.5.0/css/font-awesome.min.css" rel="stylesheet"/>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"></script>
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" rel="stylesheet"/>
<nav class="navbar navbar-inverse navbar-fixed-top bo-header">
  <div class="container">
    <ul class="nav navbar-nav navbar-right navbar-top">
      <li><a href="#"><i class="fa fa-envelope"></i></a>
      </li>
      <li><a href="#"><i class="fa fa-users"></i></a>
      </li>
      <li><a href="#"><i class="fa fa-wrench"></i></a>
      </li>
    </ul>
    <div class="navbar-header">
      <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar">
        <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="#">MY BRAND</a>
    </div>
    <!-- non-collapsing items -->
    <div class="collapse navbar-collapse" id="navbar">
      <ul class="nav navbar-nav navbar-left">
        <li><a href="#">Nav Entry 1</a>
        </li>
        <li><a href="#">Nav Entry 2</a>
        </li>
        <li><a href="#">Nav Entry 3</a>
        </li>
        <li><a href="#">Nav Entry 4</a>
        </li>
      </ul>
    </div>
  </div>
</nav>

关于html - 在所有屏幕尺寸上保留导航元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35297437/

相关文章:

jquery mobile 如何将选择菜单向右移动

html - CSS3 媒体查询未加载

jquery - 在菜单中将类从 "collapse"更改为 "collapse in"

javascript - 跨度与位置 :absolute won't create scrollbar on container overflow

html - 如何用CSS分离html标题和内容并使内容可滚动

javascript - 如何在按钮标签中添加图标?

javascript - Uncaught ReferenceError : $ is not defined error

html - 按钮和文本框的CSS

javascript - 当前所选类中的目标类

javascript - 更新 Bootstrap 按钮内徽章的文本?