Bootstrap 4'teki açılır menüdeki ok nasıl kaldırılır?


118

Bootstrap 4 kullanıyorum. Açılır menüdeki oku kaldırmaya çalıştım.

Cevaplar ben Bootstrap 3 bulundu artık çalışmaz.

Jsfiddle burada .

<div class="dropdown open">
  <button class="btn btn-secondary dropdown-toggle" type="button" id="dropdownMenu1" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
    Dropdown
  </button>
  <div class="dropdown-menu" aria-labelledby="dropdownMenu1">
    <a class="dropdown-item" href="#">Action</a>
    <a class="dropdown-item" href="#">Another action</a>
  </div>
</div>

Yanıtlar:


177

"Dropdown-toggle" sınıfını öğeden kaldırmanız yeterlidir. Aşağıdaki gibi data-toggle özniteliğine sahipseniz, açılır menü yine de çalışacaktır.

<button role="button" type="button" class="btn" data-toggle="dropdown"> 
    Dropdown Without Arrow
</button>

.dropdown-toggle sınıf stillerini geçersiz kılmak tüm açılır menüleri etkiler ve oku diğer düğmelerde tutmak isteyebilirsiniz, bu yüzden bu bana en basit çözüm gibi görünüyor.

Düzenle: Kenarlık stilini korumak istiyorsanız açılır sınıfı koruyun

<button role="button" type="button" class="btn dropdown" data-toggle="dropdown"> 
    Dropdown Without Arrow
</button>

3
Nedense, diğer çözümler benim için işe yaramadı. Bootstrap 4 çalıştırıyorum. İşe yarayan tek şey buydu.
anonymousacorn

9
Bu benim için pek işe yaramadı. Düğmenin sağ tarafı artık yuvarlatılmamış.
Jace Browning

!important:) ile özel CSS yazmaktan daha basit
hughjdavey

2
Bunu test ettim ve oldukça iyi çalışıyor! FF, Chrome, IE ve Opera'da test edildi - yerleşik tarayıcıya sahip mobil android cihazlarda bile sinir bozucu ok yok - çok teşekkürler efendim! DİKKAT: "dropdown-toggle" özniteliğinin tamamını kaldırmayın, sadece "-toggle" özelliğini kaldırın, böylece açılır menü için stiliniz kurtulmaz. Yani "açılır-kapanır", "açılır menüye" döner - umarım bu yardımcı olur.
Kerim Yağmurcu

126

Css ile şunu yapabilirsiniz:

.dropdown-toggle::after {
    display:none;
}

11
Ayrıca !importantbu özel CSS'nin yürürlüğe girmesi için eklemem gerekiyordu.
Jace Browning

1
Aynı CSS'yi kullanıyorsanız, bu diğer sayfalarda kullanılan her açılır listeyi etkileyecektir.
Pavan Nath

yalnızca düğme için oku devre dışı bırakmak için biraz daha önek ekleyin, örneğin: .btn.btn-anahat-ikincil.dropdown-toggle :: {display: none! important; }
puppylpg

35

Mevcut cevapların hiçbirini önermiyorum çünkü:

  • .dropdown-toggleimleçten daha fazla stil içerir. Sınıfın öğeden kaldırılması stil sorunlarına neden olur .

  • Geçersiz .dropdown-togglekılmak mantıklı değil. Belirli bir öğe için bir imlece ihtiyacınız olmaması, daha sonra ihtiyacınız olmayacağı anlamına gelmez.

  • ::afteraçılır seçenekleri kapsamaz (bazı kullanımlar ::before).

Öğenizle .caret-offaynı öğede bir özel kullanın .dropdown-toggle:

.caret-off::before {
    display: none;
}
.caret-off::after {
    display: none;
}

3
En iyi yanıt, diğer insanlar için bu sınıfın da eklenmesi gerektiği gibi ekstra bilgiler eklemeliyim dropdown-toggle.
eestein


5

Oku başka bir Simgeyle (FontAwesome gibi) değiştirmekle ilgileniyorsanız, sadece .dropdown-toggle'ın sözde öğesindeki sınırı kaldırmanız gerekir.

.dropdown-toggle::after { border: none; }

4

Kabul edilen cevabı projemde uzunca bir süredir kullanıyordum ama şimdi önyükleme tarafından kullanılan bir değişkenle karşılaştım :

$enable-caret: true !default;

Bunu yanlış olarak ayarlarsanız, herhangi bir özel kod yapmak zorunda kalmadan imleç kaldırılacaktır.

Projem Ruby / Rails idi, bu yüzden bootstrap-rubygem kullanıyordum . Bir ithal ederek değişken değişti custom-variables.scssbenim false yukarıdaki değişken seti ile application.scss ÖNCEbootstrap.scss dosya / dosyalar.


2

Aşağıdaki gibi açılır-kapanır sınıfını kaldırırsanız, sisteminizdeki tüm açılır düğmeler artık düzeltme işaretine sahip olmayacaktır.

.dropdown-toggle::after {
    display:none;
}

Ama belki de istediğin bu değil, bu yüzden sadece belirli bir düğmeyi kaldırmak için, remoecaret adlı bir sınıf ekleyeceğiz ve sınıfa aşağıdaki gibi uyacağız: açılır-açılır-kapanır:

.removecaret.dropdown-toggle::after {
    display: none;
}

ve html'miz şuna benzer:

<div class="btn-group">
  <button class="btn btn-outline-secondary btn-sm dropdown-toggle removecaret" data-toggle="dropdown">
    <i class="fa fa-bars" aria-hidden="true"></i>
  </button>
  <ul class="dropdown-menu dropdown-menu-right">
    <li><a href="#"><a href="#"><i class="fa fa-cog" aria-hidden="true"></i>&nbsp;Edit</a></li>
  </ul>
</div>

1

Boostrap, bunu CSS sınırını kullanarak oluşturur:

.dropdown-toggle:after {
  border: none;
}

1

Tam olarak yalnızca bu önyükleme düğmesi sınıfında istiyorsanız, şunları yapın:

.btn .dropdown-toggle::after {
    display:none;
}

0

sınıf içinde tag = "a" denediniz mi? oku daha fazla css olmadan gizler.



-2

Bu, bootsrap4 ve ng-bootstrap üzerinde çalışır.

.dropdown-toggle:after {
    display: none;
}

3
İki yaşındaki kabul edilen cevabı kopyalamak, ancak bir yazım hatası ile.
miken32
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.