如何使Bootstrap中的<button>看起来像nav-tabs中的普通链接?


110

我正在(以前是Twitter)Bootstrap 2中工作,我想对按钮进行样式设置,就好像它们是普通链接一样。但是,不仅有任何普通的链接;这些都放在一个<ul class="nav nav-tabs nav-stacked">容器中。标记最终将像这样:

<form action="..." method="post">
  <div class="row-fluid">
    <!-- Navigation for the form -->
    <div class="span3">
      <ul class="nav nav-tabs nav-stacked">
        <li><button type="submit" name="op" value="Link 1">Link 1</button></li>
        <li><button type="submit" name="op" value="Link 2">Link 2</button></li>
        <!-- ... -->
      </ul>
    </div>
    <!-- The actual form -->
    <div class="span9">
      <!-- ... -->
    </div>
  </div>
</form>

Bootstrap有什么办法使它们<button>看起来像实际<a>吗?


2
这是您可以放在<button>元素上的所有类:getbootstrap.com/2.3.2/base-css.html#buttons
Rocket Hazmat

6
为什么不使用<a>代替<button>?
VVL 2013年

5
因为我需要维护表单其余部分中的表单状态。主要是指表单会话ID,而实际上使其成为链接将意味着将整个表单切换为GET并将该数据放入href。因此,基本上我要么必须显着改变表单的操作方式,要么改变演示文稿。这个问题是我试图发现更改演示文稿有多么容易。
meustrus

@VitorVenturin我的用例:默认选项卡具有用于输入减价的文本区域。选项卡2具有HTML预览。因此,我不希望Tab 2具有默认打开它的URL。如果我使用链接,则用户可以单击鼠标中键,并在鼠标悬停时看到无意义的地址位置。按钮可以防止这种情况。
西罗Santilli郝海东冠状病六四事件法轮功

Answers:


198

如官方文档中所述,只需应用以下类btn btn-link

<!-- Deemphasize a button by making it look like a link while maintaining button behavior -->
<button type="button" class="btn btn-link">Link</button>

例如,使用您提供的代码:

<link href="//maxcdn.bootstrapcdn.com/bootstrap/3.3.1/css/bootstrap.min.css" rel="stylesheet" />


<form action="..." method="post">
  <div class="row-fluid">
    <!-- Navigation for the form -->
    <div class="span3">
      <ul class="nav nav-tabs nav-stacked">
        <li>
          <button class="btn btn-link" role="link" type="submit" name="op" value="Link 1">Link 1</button>
        </li>
        <li>
          <button class="btn btn-link" role="link" type="submit" name="op" value="Link 2">Link 2</button>
        </li>
        <!-- ... -->
      </ul>
    </div>
    <!-- The actual form -->
    <div class="span9">
      <!-- ... -->
    </div>
  </div>
</form>


8
这的确使它不再像按钮一样。但是,它没有按照我希望的方式显示在ul.nav堆栈标记中。用于该标记的CSS似乎仅适用于<a>标签...
meustrus

20
显示的内容不同于链接。
Ciro Santilli郝海东冠状病六四事件法轮功

1
在Bootstrap 3中,样式类似的按钮看起来像链接,但它们周围有太多填充,使布局混乱。但是您可以通过添加少量CSS来解决此问题(请参见下面的@mcNux答案)
Martin CR

24

只需使常规链接看起来像按钮:)

<a href="#" role="button" class="btn btn-success btn-large">Click here!</a>

href代码中的“角色”使其看起来像按钮,您可以添加更多变量,例如class。


22
这很有用,但不能回答所提出的问题。
meustrus 2014年

18
I wanted to style buttons as though they were normal links相反:S
SW4

role属性不是该a元素的有效属性。(w3.org/TR/html5/text-level-semantics.html#the-a-element
nZeus

1
这与要求的相反
Kunal,

这个答案的问题在于,在这种情况下,按钮文本的样式实际上像一个不好的链接(例如,如果您在_variables.scss中使用“ $ link-decoration:underline!default;”)。开发人员可能应该注意到这一点-也许这不是他们想要实现的目标。链接的样式应完全设为按钮。
德米特里·索莫夫

11

只需将remove_button_css作为类添加到您的按钮标签即可。您可以验证链接1的代码

.remove_button_css { 
  outline: none;
  padding: 5px; 
  border: 0px; 
  box-sizing: none; 
  background-color: transparent; 
}

在此处输入图片说明

额外样式

加入color: #337ab7;:hover:focus匹配开箱即用(bootstrap3)

.remove_button_css:focus,
.remove_button_css:hover {
    color: #23527c;
    text-decoration: underline;
}

完美运作。已添加:hover和,:focus以便与bootstrap3更加匹配。
freen-m

6

在bootstrap 3中,这对我来说效果很好:

.btn-link.btn-anchor {
    outline: none !important;
    padding: 0;
    border: 0;
    vertical-align: baseline;
}

像这样使用:

<button type="button" class="btn-link btn-anchor">My Button</button>

演示版


谢谢,这正是我所需要的。Bootstrap 3 .btn-link不会削减它,您只需要自己添加一个类。
拉斐尔·切希拉克

是的,这很完美。即时我的BS3表单布局在行之间具有正确的垂直间距。优秀的。
马丁·CR

2

只需摆脱背景颜色,边框并添加悬停效果。这是一个小提琴:http : //jsfiddle.net/yPU29/

<form action="..." method="post">
<div class="row-fluid">
<!-- Navigation for the form -->
<div class="span3">
  <ul class="nav nav-tabs nav-stacked">
    <li><button type="submit" name="op" value="Link 1" class="button-link">Link 1</button></li>
    <li><button type="submit" name="op" value="Link 2" class="button-link">Link 2</button></li>
    <!-- ... -->
  </ul>
</div>
<!-- The actual form -->
<div class="span9">
  <!-- ... -->
</div>
</div>
</form>

CSS:

.button-link {
background-color: transparent;
border: none;
}

.button-link:hover {
color: blue;
text-decoration: underline;
}

1
我添加了一些CSS元素,使其看起来完全像一个下拉链接。总计:.button-link {display:block; 宽度:100%; 填充:3px 20px; 清楚的 颜色:#333; 空白:nowrap; 背景色:透明;边界:无;文字对齐:左;} .button-link:hover {background-color:#f5f5f5; }
Andy Beverley 2014年

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.