2

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

基本工作(窗口大小小=顶部的菜单应该是这样),但问题是它不会像我在引导程序中使用默认导航栏功能那样折叠。

<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>
4

2 回答 2

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>

要删除不需要的样式,并且由于您没有使用默认的导航栏折叠结构,您需要将其添加到您的 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%;
    }
}

这是一个演示小提琴的变化

于 2013-09-10T18:13:58.400 回答
1

尝试这个。

<script>
    $('.navbar-collapse a').click(function(){
        $(".navbar-collapse").collapse('hide');
    });
</script>
于 2016-10-07T13:48:10.077 回答