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>s 처럼 보이게 할 수있는 방법이 있습니까?


2
다음은 <button>요소에 넣을 수있는 모든 클래스입니다 . getbootstrap.com/2.3.2/base-css.html#buttons
Rocket Hazmat

6
<button> 대신 <a>를 사용하지 않는 이유는 무엇입니까?
VVL 2013

5
양식의 나머지 부분에있는 양식 상태를 유지해야하기 때문입니다. 주로 이는 양식 세션 ID를 의미하며 실제로 링크로 만드는 것은 전체 양식을 GET으로 전환하고 해당 데이터를 href. 따라서 기본적으로 양식이 작동하는 방식을 극적으로 변경하거나 프레젠테이션을 변경해야합니다. 이 질문은 프레젠테이션을 변경하는 것이 얼마나 쉬운 지 알아 보려는 나의 시도입니다.
meustrus 2013

@VitorVenturin 내 사용 사례 : 기본 탭에는 마크 다운 입력을위한 텍스트 영역이 있습니다. 탭 2에는 HTML 미리보기가 있습니다. 따라서 탭 2에 기본적으로 URL을 여는 URL을 원하지 않습니다. 링크를 사용하면 사용자가 마우스 가운데 버튼을 클릭하면 마우스 오버시 의미없는 주소 위치를 볼 수 있습니다. 버튼이 그것을 방지합니다.
치로 틸리는郝海东冠状病六四事件法轮功

답변:


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-stacked 마크 업 내에서 원하는대로 표시되지 않습니다. 마크 업에 대한 CSS는 만 작동하는 것 같다 <a>... 태그
meustrus

20
링크와 다르게 표시됩니다.
치로 틸리는郝海东冠状病六四事件法轮功

1
부트 스트랩 3, 버튼과 같은 스타일 보기 링크와 같은 있지만 레이아웃을 망쳐 놨 주위에 너무 많은 패딩이있다. 그러나 소량의 CSS를 추가하여 문제를 해결할 수 있습니다 (아래 @mcNux 답변 참조)
Martin CR

24

일반 링크를 버튼처럼 보이게 만드십시오 :)

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

href 코드 내부의 "역할"은 버튼처럼 보이게하고, 클래스와 같은 변수를 더 추가 할 수 있습니다.


22
이것은 유용하지만 질문에 대한 답변은 아닙니다.
meustrus

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;"를 사용하는 경우). 이것은 아마도 개발자가 주목해야 할 것입니다. 아마도 이것은 그들이 달성하고자하는 것이 아닐 것입니다. 링크는 버튼처럼 COMPLETELY 스타일이어야합니다.
Dmitry Somov

11

버튼 태그에 remove_button_css를 클래스로 추가하기 만하면됩니다. Link 1의 코드를 확인할 수 있습니다.

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

여기에 이미지 설명 입력

추가 스타일 편집

추가 color: #337ab7;:hover:focusOOTB (bootstrap3)와 일치하는

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

완벽하게 작동합니다. 추가 :hover:focusbootstrap3과의 밀접한 일치를 위해.
freedomn-m

6

부트 스트랩 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는 그것을 잘라 내지 않으며 당신은 스스로 클래스를 추가하기 만하면됩니다.
Rafał Cieślak

예 이것은 완벽하게 작동합니다. 즉시 내 BS3 양식 레이아웃은 행 사이에 올바른 수직 간격을 갖습니다. 우수한.
Martin 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 {배경색 : # f5f5f5; }
Andy Beverley 2014 년

1

여기에 게시 된 모든 예제를 시도했지만 추가 CSS 없이는 작동하지 않습니다. 이 시도:

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

추가 CSS없이 완벽하게 작동합니다.


유효한 HTML이 아닙니다. stackoverflow.com/a/6393863/496046
tremby
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.