Как сделать <button> в Bootstrap похожей на обычную ссылку в навигационных вкладках?

81

Я работаю (ранее 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> s?

  • 1
    Вот все классы, которые вы можете поместить в элементы <button> : getbootstrap.com/2.3.2/base-css.html#buttons
  • 6
    Почему бы не использовать <a> вместо <button>?
Показать ещё 2 комментария

5 ответов

138

Как указано в официальной документации, просто примените класс 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>

Например... с кодом, который вы предоставили:

<script src="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.1/js/bootstrap.min.js"></script>
<link href="http://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>
  • 4
    Это делает его больше не похожим на кнопку. Однако он не отображается так, как я хочу, в разметке ul.nav. CSS для этой разметки работает только с тегами <a> ...
  • 14
    Показывает иначе, чем ссылки.
33

Просто сделайте регулярную ссылку похожим на кнопку:)

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

"роль" внутри кода href делает его похожим на кнопку, из которого вы можете добавить больше переменных, таких как класс.

  • 20
    Это полезно, но не отвечает на заданный вопрос.
  • 17
    I wanted to style buttons as though they were normal links это наоборот: S
Показать ещё 2 комментария
7

Просто добавьте remove_button_css как класс в свой тег кнопки. Вы можете проверить код для Link 1

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

Изображение 2414

Редактирование дополнительных стилей

Добавьте color: #337ab7; и :hover и :focus в соответствие с OOTB (bootstrap3)

.remove_button_css:focus,
.remove_button_css:hover {
    color: #23527c;
    text-decoration: underline;
}
  • 0
    Работает отлично. Добавлено :hover и :focus для более близкого совпадения с bootstrap3.
2

Я пробовал все примеры, размещенные здесь, но они не работают без дополнительного CSS. Попробуйте следующее:

<a href="http://www.google.com"><button type="button" class="btn btn-success">Google</button></a>

Работает отлично, без каких-либо дополнительных CSS.

  • 0
    Пожалуйста, объясните отрицательный голос.
1

Просто избавьтесь от цвета фона, границ и добавьте эффекты зависания. Здесь скрипка: 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; }

Ещё вопросы

Сообщество Overcoder
Наверх
Меню