Bootstrap'teki bir <button> nav sekmelerindeki normal bir bağlantı gibi nasıl görünür?


110

Bootstrap 2'de (eski adıyla Twitter) çalışıyorum ve düğmeleri normal bağlantılar gibi biçimlendirmek istedim. Yine de herhangi bir normal bağlantı değil; bunlar bir <ul class="nav nav-tabs nav-stacked">konteynere gidiyor . İşaretleme şu şekilde sona erecek:

<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'in bunları <button>gerçekte onlarmış gibi göstermesi için herhangi bir yol var mı <a>?


2
<button>Elemanlara koyabileceğiniz tüm sınıflar : getbootstrap.com/2.3.2/base-css.html#buttons
Rocket Hazmat

6
Neden <button> yerine <a> kullanmıyorsunuz?
VVL

5
Çünkü formun geri kalanında bulunan form durumunu korumam gerekiyor. Temelde bu, bir form oturumu kimliği anlamına gelir ve bunu gerçekten bir bağlantı haline getirmek, tüm formu GET olarak değiştirmek ve bu verileri href. Yani temelde ya formumun işleyişini dramatik bir şekilde değiştirmem ya da sunumu değiştirmem gerekiyor. Bu soru, sunumu değiştirmenin ne kadar kolay olduğunu bulma girişimim.
meustrus

@VitorVenturin benim kullanım durumum: varsayılan sekmede markdown girişi için bir metin alanı var. Sekme 2, HTML önizlemesine sahiptir. Bu yüzden, Tab 2'nin varsayılan olarak onu açan bir URL'ye sahip olmasını istemiyorum. Bağlantıları kullanırsam, kullanıcılar farenin orta kısmına tıklayabilir ve fareyle üzerine gelindiğinde anlamsız bir adres konumu görebilir. Düğme bunu engeller.
Ciro Santilli 郝海东 冠状 病 六四 事件 法轮功

Yanıtlar:


198

Resmi belgelerde belirtildiği gibi , basitçe sınıf (lar) ı uygulayınbtn 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>

Örneğin, sağladığınız kodla:

<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
Bu, artık bir düğme gibi görünmemesini sağlıyor. Ancak, ul.nav-yığılmış işaretlemede istediğim gibi görüntülenmiyor. Bu işaretlemenin CSS'si yalnızca <a>etiketlerle çalışıyor gibi görünüyor ...
meustrus

20
Bağlantılardan farklı şekilde gösterilir.
Ciro Santilli 郝海东 冠状 病 六四 事件 法轮功

1
Bootstrap 3'te, düğmeler böyle tarz bir görünüm bağlantıları gibi ama onlar düzeni karıştıran biridir çevrelerindeki çok fazla dolgu var. AMA, az miktarda CSS ekleyerek bunu düzeltebilirsiniz (aşağıdaki @mcNux cevabına bakın)
Martin CR

24

Normal bağlantının düğme gibi görünmesini sağlayın :)

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

Bir href kodunun içindeki "rol", düğme gibi görünmesini sağlar, aksi takdirde sınıf gibi daha fazla değişken ekleyebilirsiniz.


22
Bu yararlıdır ancak sorulan soruyu yanıtlamaz.
meustrus

18
I wanted to style buttons as though they were normal linkstam tersi: S
SW4

roleöznitelik, aöğe için geçerli bir öznitelik değil . ( w3.org/TR/html5/text-level-semantics.html#the-a-element )
nZeus

1
Bu,
Kunal

Bu yanıtla ilgili sorun, bu durumda düğme metninin aslında iyi olmayan bir bağlantı gibi biçimlendirilmiş olmasıdır (örneğin, _variables.scss dosyanızda "$ link-decoration: underline! Default;" kullanırsanız). Bu muhtemelen geliştiriciler tarafından not edilmelidir - belki de ulaşmak istedikleri şey bu değildir. Bağlantı TAMAMEN bir düğme olarak tasarlanmalıdır.
Dmitry Somov

11

Bunun için, düğme etiketinize class olarak remove_button_css eklemeniz yeterlidir. Bağlantı 1 kodunu doğrulayabilirsiniz

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

görüntü açıklamasını buraya girin

Ekstra Stiller Düzenleme

Ekle color: #337ab7;ve :hoverve :focusadet OTB (bootstrap3) eşleşecek

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

Mükemmel çalışıyor. Eklenen :hoverve :focusbootstrap3 ile daha yakın maç için.
Freedomn-m

6

Bootstrap 3'te bu benim için iyi çalışıyor:

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

Gibi kullanılır:

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

Demo


Teşekkürler, tam da ihtiyacım olan şey bu. Bootstrap 3 .btn-link kesmez ve sadece kendi başınıza bir sınıf eklemeniz gerekir.
Rafał Cieślak

EVET bu mükemmel çalışıyor. Anında BS3 form düzenim, satırlar arasında doğru dikey boşluğa sahip. Mükemmel.
Martin CR

2

Arka plan renginden, kenarlıklardan kurtulun ve vurgulu efektler ekleyin. İşte bir keman: 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
Tam olarak bir açılır bağlantı gibi görünmesi için birkaç CSS öğesi ekledim. Toplamda: .button-link {display: block; genişlik:% 100; dolgu: 3px 20px; ikisini de temizle; renk: # 333; beyaz boşluk: nowrap; arka plan rengi: şeffaf; border: yok; metin hizalama: sol; } .button-link: hover {background-color: # f5f5f5; }
Andy Beverley

1

Buraya gönderilen tüm örnekleri denedim, ancak ekstra CSS olmadan çalışmıyorlar. Bunu dene:

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

Ekstra CSS olmadan mükemmel çalışır.


Bu geçerli HTML değil. stackoverflow.com/a/6393863/496046
tremby
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.