默认情况下,移动视图中不会折叠Bootstrap菜单

时间:2013-09-10 15:10:10

标签: javascript css twitter-bootstrap

我尝试使用自动折叠的twitter bootstrap 3.0实现垂直导航。

基础知识工作(窗口大小小=顶部的菜单应该是这样),但问题是如果我使用bootstrap中的默认导航栏功能,它就不会崩溃。

<div class="container-fluid">

        <div class="row">
            <div class="navbar-brand">
                <a href="<g:createLink uri="/" absolute="true" />">BABSI</a>
            </div>
            <button type="button" class="btn navbar-btn" data-toggle="collapse"
                    data-target="#sidebar">TOOGLE

                    Toggle navigation
                    <span class="icon-bar"></span> <span class="icon-bar"></span> 
                    <span class="icon-bar"></span>
                </button>
        </div>
        <div class="row">
            <header id="sidebar" class="col-md-2 collapse">

                <div class="row">

                                    <!-- generates ul structure -->
                    <nav:primary class="nav navbar-inverse nav-stacked" />
                </div>
            </header>
            <section id="content" class="col-md-10">
                <div class="row"></div>
                <div class="panel panel-default">
                    <div class="panel-heading">
                        <g:layoutTitle />
                    </div>
                    <div class="panel-body">
                        <g:layoutBody />
                    </div>
                </div>
            </section>
        </div>
    </div>

2 个答案:

答案 0 :(得分:3)

您需要导航中的.navbar-collapse类,因为那是设置为在给定断点处折叠的类。

我对您的标记进行了一些更改以适应这种情况,并添加了.navbar容器,以便您可以轻松地使用按钮上的.navbar-toggle类:

<div class="container">
    <div class="navbar navbar-default">
        <div class="navbar-brand"> 
            <a href="#">BABSI</a>
        </div>
        <button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#sidebar .navbar-collapse"> 
            <span class="icon-bar"></span>  
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
        </button>
    </div>
    <div class="row">
        <header id="sidebar" class="col-md-2">
            <div class="collapse navbar-collapse">
                <!-- generates ul structure -->
                <nav:primary class="nav navbar-inverse nav-stacked" />
            </div>
        </header>
        <section id="content" class="col-md-10">
            <div class="row"></div>
            <div class="panel panel-default">
                <div class="panel-heading">
                    <g:layoutTitle />
                </div>
                <div class="panel-body">
                    <g:layoutBody />
                </div>
            </div>
        </section>
    </div>
</div>

要删除不需要的样式,并且由于您没有使用默认的navbar-collapse结构,您需要将其添加到CSS

//remove background and border from navbar
.navbar-default{
    background: none;
    border: 0;
}
.navbar-collapse{
    padding: 0;
}

//override width:auto of navbar-collapse
@media (min-width:768px) {
    .navbar-collapse {
        width: 100%;
    }
}

这是 demo fiddle ,其中包含更改

答案 1 :(得分:1)

试试这个。

<script>
    $('.navbar-collapse a').click(function(){
        $(".navbar-collapse").collapse('hide');
    });
</script>