jquery - Twitter Bootstrap 3 导航栏崩溃

标签 jquery html css twitter-bootstrap

我正在尝试将我的 Twitter Bootstrap 2 导航栏迁移到 Bootstrap 3。我的导航栏有 3 个部分。

“myContent1”和“myContent2”将始终可见。对于小屏幕,“myContent3”将被折叠。但是当我在小屏幕设备上单击堆叠按钮时,折叠菜单不会打开。单击按钮时没有任何反应。

我把它放到一个 fiddle 里:http://jsfiddle.net/mavent/LDP8K/6/

<nav class="navbar navbar-inverse navbar-fixed-top navbar-sam-main" role="navigation">
<!-- Brand and toggle get grouped for better mobile display -->
<div class="navbar-header">

    <a class="navbar-brand navbar-left" href="" title="aaaa" id="MyContent1">
        MySite
    </a>

    <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-mycol">
        <span class="sr-only">Toggle navigation</span>
        <span class="icon-bar"></span>
        <span class="icon-bar"></span>
        <span class="icon-bar"></span>
    </button>



    <ul class="nav navbar-nav navbar-left" id="myContent2">
        <li class="dropdown" id="users">
            <a class="navbar-brand" href="" title="aaa" style="display:inline-block;padding-right:0px;">
                <img src="" width="24" height="24" alt="aaaa">
                MyName
            </a>
            <a class="dropdown-toggle" data-toggle="dropdown" href="#users"  style="display:inline-block;padding-left:0px;">
                <b class="caret" style="border-left: 6px solid transparent; border-right: 6px solid transparent;  border-top: 6px solid #999;"></b>
            </a>
            <ul class="dropdown-menu">
                <li><a href=""><img src="" width="24" height="30"/> OtherName</a></li>
                <li class="divider"></li>
                <li><a href="">AAAA</a></li>
                <li><a href="">BBB</a></li>
            </ul>
        </li>
    </ul>


</div>


<!-- Collect the nav links, forms, and other content for toggling -->
<div class="collapse navbar-collapse navbar-mycol">
    <ul class="nav navbar-nav navbar-right" id="myContent3">

        <li><a href="">UUUU</a></li>
        <li><a href="">YYYYY</a></li>

        <li class="dropdown" id="wer">
            <a class="dropdown-toggle" data-toggle="dropdown" href="#wer">Tools
                <b class="caret"></b>
            </a>
            <ul class="dropdown-menu">
                <li><a href="">aaaa</a></li>
                <li><a href="">bbbb</a></li>
                <li><a href="">cccc</a></li>
            </ul>
        </li>

    </ul>

</div><!-- /.navbar-collapse -->
</nav>

编辑:根据一个人的建议,我将“切换按钮”放在 navbar-header 部分之外。我给按钮 top:0 和 right:0 绝对样式。但是在那种情况下,如果屏幕非常小,myContent2 会渗透到按钮中。您可以从中看到该行为:http://jsfiddle.net/mavent/paXt9/2/

Edit2:我需要这种行为:

对于大屏幕,一切都是可见的。
enter image description here

对于较小的屏幕,myContent2 可见,myContent3 折叠。如果单击按钮,myContent3 将展开。
enter image description here

对于非常小的屏幕,myContent2 将显示在下一行。所以myContent2和button不会互相冲突。
enter image description here

最佳答案

下拉元素占据了整个导航栏的宽度并阻止了按钮的工作,要解决问题,您可以为您的品牌链接和导航栏切换按钮设置更高的 z-index:

.navbar-sam-main .navbar-toggle, .navbar-sam-main .navbar-brand {
    position: relative;
    z-index:1;
}

对于在评论部分提出的其他问题,修复是将下 zipper 接和插入符号包裹在一个跨度中,使它们作为单个元素包裹,并使用媒体查询使链接显示在落到第二行时居中:

HTML

<li class="dropdown" id="users"> 
    <span>
        <a class="navbar-link" href="" title="aaa" style="display:inline-block;padding-right:0px;">
            <img src="" width="24" height="24" alt="aaaa" />
            MyName
        </a>
        <a class="dropdown-toggle" data-toggle="dropdown" href="#users"  style="display:inline-block;padding-left:0px;">
            <b class="caret" style="border-left: 6px solid transparent; border-right: 6px solid transparent;  border-top: 6px solid #999;"></b>
        </a>
    </span>
    <ul class="dropdown-menu">
        ...
    </ul>
</li>

CSS

.navbar-sam-main .navbar-nav > li >span {
    display: inline-block;
    padding-top: 10px;
    padding-bottom: 10px;
    line-height: 20px;
}
.navbar-sam-main .navbar-nav > li >span .navbar-brand {
    padding-top: 0;
    padding-bottom: 0;
}

@media (max-width: 270px) {
    #myContent1 > li.dropdown {
        text-align: center;
    }
    #myContent1 > li.dropdown >ul {
        text-align:left;
    }
}

关于jquery - Twitter Bootstrap 3 导航栏崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18793281/

相关文章:

html - 显示 : flex from display: none in breakpoint not working in safari on OSX

javascript - 通过JS彻底清空一个页面,不重定向到:blank?左右

html - 创建相同高度的 <div 容器

javascript - 如何在使用 jQuery 单击按钮后跳转到特定幻灯片?

jquery - 动画 css 不起作用

php - 根据订购的商品设置总计,两种类型,有时一种类型不会订购。

html - 带有 Twitter Bootstrap 3 的内联响应式菜单

javascript - 将变量与 $(window).scroll 事件中的数组值进行比较

javascript - 无法在 php 中使用 jQuery 和 AJAX 将数据插入数据库

javascript - jQuery 验证消息问题