Twitter Bootstrap:在导航栏中使用`.btn`类的正确方法是什么?

时间:2012-02-12 21:12:39

标签: css css3 navigation twitter-bootstrap css-frameworks

我正在使用导航栏作为标准导航内容,我想要包含登录和注册按钮。

我正在使用带有a类的btn btn-large btn-success标记,默认情况下,导航条似乎无法使用嵌套的btn

结果是这样的:

default without hover

当它盘旋时,它会显示为:

hovered

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

我想在重新定义.btn的CSS类之前我会问。在导航栏中。

感谢。

6 个答案:

答案 0 :(得分:63)

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

Buttons added to the navbar.

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>

如果您没有使用自适应布局在较小的屏幕上折叠导航栏,只需将您的按钮链接放在<div class="container">上一级。

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

答案 1 :(得分:31)

正如所讨论的here,用div包装链接:

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

答案 2 :(得分:6)

这是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>

答案 3 :(得分:1)

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

答案 4 :(得分:0)

将.btn放入导航栏时遇到了同样的问题,当我徘徊时,它“切断”了按钮bg的一半,我解释了它,我声明了.nav&gt; li> a.btn:在main.css中再次悬停 - &gt;应用程序的自定义样式文件,在bootstrap.css之后置于头部,这样就可以了,因为如果你检查firebug或任何开发工具中的元素并尝试将其悬停,你会注意到.btn悬停样式被导航悬停重写样式,放在bootstrap.css文件中的按钮之后......

答案 5 :(得分:-3)

我已经通过添加以下内容来修复此问题:

style="margin-top:10px;"

完整按钮代码如下所示:

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