【问题标题】:Bootstrap 3 Navbar toggle - collapses but button does not appearBootstrap 3导航栏切换 - 折叠但按钮不出现
【发布时间】:2014-03-11 03:12:38
【问题描述】:

我不知道我在这里做错了什么,但我认为这是非常愚蠢的事情。

我在 Umbraco 6.0.5 中使用 Bootstrap 3,我无法让切换器工作在缩小 - 低于 770 像素宽度时,导航会崩溃,但没有按钮可以切换它,或者说有什么东西,如中所示代码和 Firebug,但在 Chrome 和 Firefox 中不可见(没有尝试过 IE)。

有一个fiddle 和下面的代码。我在小提琴中使用http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.jshttp://netdna.bootstrapcdn.com/bootstrap/3.0.3/js/bootstrap.min.jshttp://netdna.bootstrapcdn.com/bootstrap/3.1.0/css/bootstrap.min.css

<nav class="navbar">
  <div class="container-fluid">
    <div class="navbar-header">

      <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".nav-collapse">
        <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" href"#">reech</a>  
    </div>

    <div class="collapse navbar-collapse" id="nav-collapse">
      <ul class="nav navbar-nav">
        <li><a href="/" class="selected">Home</a></li>
        <li class=" dropdown">
          <a href="/what-is-reech.aspx" class=" dropdown-toggle" data-hover="dropdown" rel="">What is reech? <b class="caret"></b></a>
          <ul class="dropdown-menu">
            <li><a href="/what-is-reech/about-this-site.aspx" rel="">About this site</a></li>
          </ul>
        </li>
        <li class=" dropdown">
        </li>
        <li><a href="/key-reech-projects.aspx" class="" rel="">Key reech projects</a></li> 
        <li class=" dropdown">
        </li>
        <li><a href="/technologies.aspx" class="" rel="">Technologies</a></li> 
        <li class=" dropdown">
        </li>
        <li><a href="/complementary-activities.aspx" class="" rel="">Complementary Activities</a></li> 
        <li class=" dropdown">
          <a href="/news.aspx" class=" dropdown-toggle" data-hover="dropdown" rel="">News <b class="caret"></b></a>
          <ul class="dropdown-menu">
            <li><a href="/news/merseyside-collective-switching-scheme-launched.aspx" rel="">Merseyside collective switching scheme launched</a></li>
            <li><a href="/news/reech-scoops-top-award.aspx" rel="">reech scoops top award</a></li>
            <li><a href="/news/reech-award-nomination.aspx" rel="">reech award nomination</a></li>
            <li><a href="/news/green-deal-and-energy-company-obligation-(eco)-september-2013-statistics.aspx" rel="">Green Deal and Energy Company Obligation (ECO) September 2013 Statistics</a></li>
            <li><a href="/news/energy-switching-scheme.aspx" rel="">Energy Switching Scheme</a></li>
            <li><a href="/news/project-reeches-new-milestone.aspx" rel="">Project &#39;reeches&#39; new milestone</a></li>
            <li><a href="/news/firms-sign-up-for-new-opportunities.aspx" rel="">Firms sign up for new opportunities</a></li>
            <li><a href="/news/14-new-jobs-created-for-merseyside-residents.aspx" rel="">14 new jobs created for Merseyside residents</a></li>
            <li><a href="/news/reeching-out-to-low-carbon-and-green-energy-sector.aspx" rel="">&#39;reeching&#39; out to Low Carbon and Green Energy Sector</a></li>
          </ul>
        </li>
        <li class=" dropdown">
        </li>
        <li><a href="/reech-into-business.aspx" class="" rel="">reech into business</a></li> 
        <li class=" dropdown">
          <a href="/reech-partners.aspx" class=" dropdown-toggle" data-hover="dropdown" rel="">reech partners <b class="caret"></b></a>
          <ul class="dropdown-menu">
            <li><a href="/reech-partners/reech-steering-group.aspx" rel="">reech Steering Group</a></li>
          </ul>
        </li>

      </ul>
    </div><!--close navbar-collapse-->
  </div><!--close container-->
</nav><!--Close nav-->

更新 - 所以,我尝试将数据目标(并已将fiddle)更改为#main-nav,并将 id 更改为 main-nav,不高兴。 我尝试在 button > span 元素中放置一个破折号,它可以工作。也就是说,破折号显示,我可以切换菜单。但是图标栏在哪里?

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

【问题讨论】:

    标签: javascript jquery html css twitter-bootstrap


    【解决方案1】:

    在你的第一行

    <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".nav-collapse">
    

    应该是data-target="#nav-collapse",因为你有&lt;div class="collapse navbar-collapse" id="nav-collapse"&gt;,其中id是nav-collapse

    【讨论】:

      【解决方案2】:

      并将&lt;nav class="navbar"&gt; 更改为&lt;nav class="navbar navbar-default"&gt;

      【讨论】:

      • 你是对的!我试图变得聪明并打破它。那会教我的!
      【解决方案3】:

      这应该会让你指向正确的方向。看起来您的主要问题是您的按钮数据目标属性引用了一个类而不是一个 ID。在这种情况下最好使用 ID,因此如果您在代码中的其他位置调用该类,则不会在 javascript 中抛出曲线球。

      我还看到您有几个 &lt;li class="dropdown"&gt;&lt;/li&gt; 是空白的。我不确定这是否是故意的,但我会参考我附上的结构。

      希望这对你有用,祝你好运!

      <nav class="navbar navbar-default" role="navigation">
        <div class="container-fluid"> 
          <!-- Brand and toggle get grouped for better mobile display -->
          <div class="navbar-header">
            <button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#main-nav"> <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" href="#">Reech</a> </div>
      
          <!-- Collect the nav links, forms, and other content for toggling -->
          <div class="collapse navbar-collapse" id="main-nav">
            <ul class="nav navbar-nav">
              <li class="active"><a href="#">Home</a></li>
              <li class="dropdown"> <a href="/what-is-reech.apsx" class="dropdown-toggle" data-toggle="dropdown">What is reech? <b class="caret"></b></a>
                <ul class="dropdown-menu">
                  <li><a href="/what-is-reech/about-this-site-aspx">About this site</a></li>
                </ul>
              </li><!-- dropdown -->
              <li class="dropdown"> <a href="/what-is-reech.apsx" class="dropdown-toggle" data-toggle="dropdown">Key reech projects <b class="caret"></b></a>
                <ul class="dropdown-menu">
                  <li><a href="/technologies.apsx">Technologies</a></li>
                  <li><a href="/complementary-activities.apsx">Complementary Activities</a></li>
                </ul>
              </li><!-- dropdown -->
              <li class="dropdown"> <a href="/what-is-reech.apsx" class="dropdown-toggle" data-toggle="dropdown">Key reech projects <b class="caret"></b></a>
                <ul class="dropdown-menu">
                  <li><a href="/technologies.apsx">Technologies</a></li>
                </ul>
              </li><!-- dropdown -->
            </ul><!-- nav navbar-nav -->
          </div><!-- collapse navbar-collapse -->
          <!-- /.navbar-collapse --> 
        </div>
        <!-- /.container-fluid --> 
      </nav>
      

      【讨论】:

        【解决方案4】:

        Bootstrap - 切换按钮不会显示在移动视图中

        修复: 在以下位置进行这些更改:bootstrap.min.css

        这修复了切换按钮的外边框

        .navbar-toggle
        {
            position:relative;
            float:right;
            padding:9px 10px;
            margin-top:8px;
            margin-right:15px;
            margin-bottom:8px;
            background-color:transparent;
            background-image:none;
            border-radius:4px
        }
        

        添加

        border:1px solid #444;
        

        (更改颜色代码以匹配您的设计)

        .navbar-toggle
        {
            position:relative;
            float:right;
            padding:9px 10px;
            margin-top:8px;
            margin-right:15px;
            margin-bottom:8px;
            background-color:transparent;
            background-image:none;
            border:1px solid #444;          /* added line */
            border-radius:4px
        }
        

        这修复了切换按钮的水平线

        .icon-bar
        {
            display:block;
            width:22px;
            height:2px;
            border-radius:1px;
        }
        

        添加

        border:1px solid #444;
        

        (更改颜色代码以匹配您的设计)

        .icon-bar
        {
            display:block;
            width:22px;
            height:2px;
            border-radius:1px;
            border:1px solid #444;
        }
        

        【讨论】:

        • 只需添加 .navbar-default 类,而不是编写长代码!
        猜你喜欢
        • 1970-01-01
        • 2018-08-06
        • 1970-01-01
        • 2017-06-06
        • 2016-12-13
        • 2015-01-02
        • 2013-04-25
        • 2020-08-16
        相关资源
        最近更新 更多