水平滚动的导航栏Bootstrap

3
我有一个网站右侧的导航栏,但如果我像平板电脑屏幕那样调整屏幕大小,导航栏会变成两行。

我的导航栏HTML代码很基本:

<div class="nav_div col-sm-offset-5 col-sm-7"> 
        <nav class="navbar navbar-default">
          <div class="container-fluid">
            <!-- Brand and toggle get grouped for better mobile display -->
            <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>
            </div>
            <!-- Collect the nav links, forms, and other content for toggling -->
            <div class="collapse navbar-collapse" id="bs-nav">
              <ul class="nav navbar-nav navbar-center">
                <li data-menuanchor="blablab" class="active"><a href="#blablab">blablab</a></li>
                <li data-menuanchor="blablab"><a href="#blablab">blablab</a></li>
                <li data-menuanchor="blablab"><a href="#blablab">blablab</a></li>
                <li data-menuanchor="blablab"><a href="#blablab">blablab</a></li>
                <li data-menuanchor="blablab"><a href="#blablab">blablab</a></li>
                <li data-menuanchor="blablab"><a href="#blablab">blablab</a></li>
              </ul>
            </div><!-- /.navbar-collapse -->
          </div><!-- /.container-fluid -->
        </nav>    
    </div>

enter image description here

我想要一个自动水平滚动条,其中活动选项卡位于中间。
1个回答

2
问题在于: <div class="nav_div col-sm-offset-5 col-sm-7"></div> 中的col-sm-7不够大,当视口大小调整时,它会将内容推到新行。
您可以将其更改为类似于以下内容的解决方案:<div class="nav_div col-sm-offset-3 col-sm-9">,这是一个简单而干净的解决方案。 两个带演示的解决方案:
<div class="nav_div col-sm-offset-3 col-sm-9"> 
        <nav class="navbar navbar-default">
          <div class="container-fluid">
            <!-- Brand and toggle get grouped for better mobile display -->
            <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>
            </div>
            <!-- Collect the nav links, forms, and other content for toggling -->
            <div class="collapse navbar-collapse" id="bs-nav">
              <ul class="nav navbar-nav navbar-center">
                <li data-menuanchor="blablab" class="active"><a href="#blablab">blablab</a></li>
                <li data-menuanchor="blablab"><a href="#blablab">blablab</a></li>
                <li data-menuanchor="blablab"><a href="#blablab">blablab</a></li>
                <li data-menuanchor="blablab"><a href="#blablab">blablab</a></li>
                <li data-menuanchor="blablab"><a href="#blablab">blablab</a></li>
                <li data-menuanchor="blablab"><a href="#blablab">blablab</a></li>
              </ul>
            </div><!-- /.navbar-collapse -->
          </div><!-- /.container-fluid -->
        </nav>    
    </div>

代码演示1

或者

你可以在CSS中操纵你的导航链接的填充,这样你就可以仍然使用<div class="nav_div col-sm-offset-5 col-sm-7"></div>而不会在屏幕调整大小时断行。

.navbar-nav > li > a{
   line-height: 50px;
   padding: 0 5px;
}

CODEPEN DEMO 2

如果你想要垂直滚动,你需要减小列的大小,然而这不是一个好的导航结构方式,如果你在使用bootstrap。

<div class="nav_div col-sm-offset-5 col-sm-3"> 
        <nav class="navbar navbar-default">
          <div class="container-fluid">
            <!-- Collect the nav links, forms, and other content for toggling -->
              <ul class="nav navbar-nav navbar-center">
                <li data-menuanchor="blablab" class="active"><a href="#blablab">blablab</a></li>
                <li data-menuanchor="blablab"><a href="#blablab">blablab</a></li>
                <li data-menuanchor="blablab"><a href="#blablab">blablab</a></li>
                <li data-menuanchor="blablab"><a href="#blablab">blablab</a></li>
                <li data-menuanchor="blablab"><a href="#blablab">blablab</a></li>
                <li data-menuanchor="blablab"><a href="#blablab">blablab</a></li>
              </ul>
          </div><!-- /.container-fluid -->
        </nav>    
    </div>

CSS:

.navbar{
   max-height: 40px;
   overflow-y: scroll;
}

代码笔 DEMO 3


谢谢您的回复,但是您没有理解我想要做什么。我想要实现垂直滚动。如果窗口太小,用户可以在导航栏上滚动,而它仍然在一行中。 - Flavien317
如果你想要垂直滚动,那为什么要把导航栏折叠起来呢?哈哈 - Peter Girnus
这是针对xs设备(手机)的,而垂直方向则适用于平板电脑或迷你笔记本电脑。 - Flavien317
我更新了我的答案,请看底部。遗憾的是,在Bootstrap中,您尝试做的事情是低效的,我不建议这样做。 - Peter Girnus
你可以给它一个引导类“active”,例如“<li class =”active“>”。 - Peter Girnus
显示剩余2条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接