【问题标题】:Twitter Bootstrap: What is the correct way to use the `.btn` class within a navbar?Twitter Bootstrap:在导航栏中使用“.btn”类的正确方法是什么?
【发布时间】:2012-03-04 09:27:19
【问题描述】:

我将导航栏用于标准导航内容,我想包含一个用于登录和注册的按钮。

我正在使用带有btn btn-large btn-success 类的a 标记,默认情况下,导航栏似乎不适合嵌套btns 的使用。

结果是这样的:

当悬停在上面时,它会显示为:

我的问题基本上是:我做错了吗?我有什么遗漏吗?

在我为 .btn 重新定义 CSS 类之前,我想问一下。在导航栏中。

谢谢。

【问题讨论】:

  • 您不能在<li> 中包含a.btn
  • 从提供的信息来看,您这样做是正确的。您能否提供问题的链接,或在 jsFiddle 中复制它?
  • @JonathanOng 确认这一点的文档在哪里?
  • 没有。我在 GitHub 上问了同样的问题,有人回答了这个答案。烦人,是的。

标签: css navigation twitter-bootstrap css-frameworks


【解决方案1】:

我已经通过添加这个来解决这个问题:

style="margin-top:10px;"

完整的按钮代码如下所示:

<a href="/register"><button class="btn btn-warning pull-right" style="margin-top:10px;">Register</button></a>

【讨论】:

    【解决方案2】:

    正如here 所讨论的那样,用 div 包装链接是可行的:

    <div><a class='btn' href='#'>Link</a></div>
    

    【讨论】:

    • 简单易行的解决方案。谢谢。
    【解决方案3】:

    将 .btn 放在导航栏中时,我遇到了同样的问题,当我悬停时,它“剪切”了按钮 bg 的一半,我通过声明 .nav > li > a.btn:hover 再次解决了这个问题main.css -> 应用程序的自定义样式文件,放在 bootstrap.css 之后的 head 中,这样就可以工作,因为如果您在 firebug 或任何开发工具中检查元素并尝试将其悬停,您会注意到 .btn 悬停样式被nav hover样式改写,放在bootstrap.css文件中按钮之后...

    【讨论】:

      【解决方案4】:
      <div class="navbar navbar-inverse navbar-fixed-top">
          <div class="navbar-inner">
              <div class="container">
                  <a class="brand" href="#">Brand name</a>
                  <ul class="nav">
                      <li class="active"><a href="#">Main</a></li>
                      <li><a href="#about">Next one</a></li>
                  </ul>
      
      
                  <div class="btn-group pull-right">
                      <a class="btn btn-small dropdown-toggle" data-toggle="dropdown"><i class="icon-user"></i> Trololo</a>
                      <ul class="dropdown-menu">
                          <li><a href="#">Action</a></li>
                          <li><a href="#">Another action</a></li>
                          <li><a href="#">Something else here</a></li>
                          <li class="divider"></li>
                          <li><a href="#">Separated link</a></li>
                      </ul>
                  </div>
      
      
              </div>
          </div>
      </div>
      

      【讨论】:

        【解决方案5】:

        这是 Jared Harley 答案的修改版本。这是我最终使用的,它支持在导航栏中有一个下拉菜单。

        <div class="navbar navbar-fixed-top active">
          <div class="navbar-inner">
            <div class="container" style="width: auto;">
              <a class="brand" href="#">Project name</a>
              <div class="nav-collapse">
                <ul class="nav">
                  ... nav links ...
                </ul>
                <form class="navbar-search pull-left" action="">
                  ... search box stuff
                </form>
                <a class="btn btn-success">Sign in</a>
                <a class="btn btn-primary">Sign up</a>
              </div>
              <div class="pull-right">
                <ul class="nav">
                  <li class="dropdown">
                    <a href="#" data-toggle="dropdown" class="dropdown-toggle">
                      Dropdown
                      <b class="caret"></b>
                    </a>
                    <ul class="dropdown-menu">
                      <li>
                        <a href="#">item</a>
                      </li>
                      <li class="divider"></li>
                      <li>
                        <a href="#">another item</a>
                      </li>
                    </ul>
                  </li>
                  <li class="divider-vertical"></li>
                </ul>
                <a class="btn btn-primary" href="#">Primary</a>
                <a class="btn btn-success" href="#">Success</a>
              </div>
            </div>
          </div>
        </div>
        

        【讨论】:

        • 我很困惑,你能用btn 类设置下拉菜单的样式吗?当我将btn 应用于您的“下拉”&lt;li&gt;above 时,我仍然得到原始(损坏的)结果。干杯
        【解决方案6】:

        导航栏可以毫无问题地容纳按钮 - 我在导航栏中有按钮没有任何问题,我可以将它们添加到 static navbar example on the Bootstrap page

        html 的布局应该是这样的:

        <div class="navbar navbar-fixed-top active">
          <div class="navbar-inner">
            <div class="container" style="width: auto;">
              <a class="brand" href="#">Project name</a>
              <div class="nav-collapse">
                <ul class="nav">
                  ... nav links ...
                </ul>
                <form class="navbar-search pull-left" action="">
                  ... search box stuff
                </form>
                <a class="btn btn-success">Sign in</a>
                <a class="btn btn-primary">Sign up</a>
              </div>
            </div>
          </div>
        </div>
        

        如果您不使用响应式布局来折叠较小屏幕上的导航栏,只需将按钮链接向上一级,在 &lt;div class="container"&gt; 中。

        如果您仍然没有发现问题,请尝试使用 Chrome's Dev Tools 查看哪些 CSS 应用到了不应该应用的按钮。

        【讨论】:

        • 贾里德,非常感谢!这是 99% 的完美。不幸的是,它不适用于下拉列表li.divider-vertical。解决方案基本上是在div.nav-collapse 之后创建一个div.pull-right。在div.pull-right 里面我把ul.nav 和它各自的li 元素放在一起。紧随ul.nav 之后是按钮所在的位置。如果您想更新您的答案,我会将其标记为解决方案 - 否则请告诉我,我会用您更新的源代码回答我自己的问题。
        • 您需要将按钮放在 ul.nav 中。否则,nav-collapse 将获得按钮的高度,并会阻止您的品牌元素。
        猜你喜欢
        • 2014-05-02
        • 1970-01-01
        • 2013-06-20
        • 2022-10-27
        • 1970-01-01
        • 2021-10-03
        • 1970-01-01
        • 1970-01-01
        • 2013-08-12
        相关资源
        最近更新 更多