Bootstrap 3在小屏幕中重新排序导航栏的布局

时间:2015-11-13 11:04:36

标签: html css twitter-bootstrap layout twitter-bootstrap-3

目前我正在学习Bootstrap 3,我需要帮助在小屏幕上重新排序导航栏的布局。 我已经按照LINK

中的示例进行了操作

我用用户个人资料替换了Default / Static / Fixed 所以我想要改变的是当屏幕很小时我会有 | ----------品牌---------- |
| [ - ] ----------------------轮廓|

以下是我的示例代码:



@media (max-width: 767px) {
  .navbar-brand {
    width: auto;
    float: none;
    border-bottom: 0 solid transparent;
    margin: 0 -15px;
  }  
  .navbar-toggle {
    float: left;
  }
  .nav-user-profile .navbar-nav {
    margin: 0;
  }
  .nav-user-profile .navbar-nav>li {
    position: static;
    float: left;
  }
  .nav-user-profile .navbar-nav>li>a {
    padding-top: 15px;
    padding-bottom: 15px;
    line-height: 20px;
  }
}

<nav role="navigation" class="navbar navbar-default">
    <!-- Brand and toggle get grouped for better mobile display -->
    <div class="navbar-brand"><a href="#">Brand</a></div>
    <div class="navbar-header">
        <button type="button" data-target="#navbarCollapse" data-toggle="collapse" class="navbar-toggle">
            <span class="sr-only">Toggle navigation</span>
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
        </button>        
    </div>
    <!-- Collection of nav links and other content for toggling -->
    <div id="navbarCollapse" class="collapse navbar-collapse">
        <ul class="nav navbar-nav">
            <li class="active"><a href="#">Home</a></li>
            <li><a href="#">About</a></li>
            <li><a href="#">Contact</a></li>
        </ul>
        <div class="nav-user-profile navbar-right">
            <ul class="nav navbar-nav">
                <li><a href="#">Profile</a></li>
            </ul>
        </div>
    </div>
</nav>
&#13;
&#13;
&#13;

我怎样才能实现它?

感谢您的想法

3 个答案:

答案 0 :(得分:1)

我认为这是您根据图表尝试做的事情。可能最简单的方法是在导航栏上方创建第二个品牌位置的div。您可以使用hidden/visible类隐藏一个或另一个品牌位置。并且配置文件链接可以放在navbar-header内部,因此它可以在所有视口中显示,只需要在右侧正确定位,navbar-toggle浮动到左侧。

请参阅工作代码段。

header {
  text-align: center;
  background: #f5f5f5;
  width: 100%;
  height: 50px;
  padding: 15px 15px;
}
header .header-brand {
  color: #777;
  font-size: 18px;
  line-height: 20px;
}
header .header-brand:focus,
header .header-brand:hover {
  text-decoration: none;
  color: #5e5e5e;
}
.navbar .btn.profile-btn,
.navbar .btn.profile-btn:hover,
.navbar .btn.profile-btn:focus {
  float: right;
  right: 0;
  position: absolute;
  margin-top: 10px;
  background: none;
  border: none;
}
@media (max-width: 767px) {
  .navbar .navbar-toggle {
    float: left;
    margin-left: 15px;
  }
}
<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.5/js/bootstrap.min.js"></script>
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css" rel="stylesheet" />
<header class="visible-xs-block"> <a class="header-brand" href="#">Brand</a>

</header>
<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-nav" 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 hidden-xs" href="#">Brand</a>

      <button type="button" class="btn btn-default profile-btn">Profile</button>
    </div>
    <div class="collapse navbar-collapse" id="bs-nav">
      <ul class="nav navbar-nav navbar-left">
        <li class="active"><a href="#">Home</a>

        </li>
        <li><a href="#">About</a>

        </li>
        <li><a href="#">Contact</a>

        </li>
      </ul>
    </div>
  </div>
</nav>

答案 1 :(得分:0)

拉右课可以帮助你...

bootstrap分为12列,适用于大,中,小尺寸

因此,当它变成小尺寸时,使用col-sm-12类将品牌赋予完整的12列,这样它就会将轮廓分解为向下

答案 2 :(得分:0)

我只添加了text-right非常简单的外观,我注意到//更改*

<nav role="navigation" class="navbar navbar-default">
    <!-- Brand and toggle get grouped for better mobile display -->
    <div class="navbar-brand"><a href="#">Brand</a></div>
    <div class="navbar-header">
        <button type="button" data-target="#navbarCollapse" data-toggle="collapse" class="navbar-toggle">
            <span class="sr-only">Toggle navigation</span>
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
        </button>        
    </div>
    <!-- Collection of nav links and other content for toggling -->
    <div id="navbarCollapse" class="collapse navbar-collapse">
              //changes*
        <ul class="nav navbar-nav text-right">
              //changes*
            <li class="active"><a href="#">Home</a></li>
            <li><a href="#">About</a></li>
            <li><a href="#">Contact</a></li>
        </ul>
        <div class="nav-user-profile navbar-right">
            <ul class="nav navbar-nav">
                <li><a href="#">Profile</a></li>
            </ul>
        </div>
    </div>
</nav>