J'utilise Bootstrap 4. J'ai essayé de supprimer la flèche dans la liste déroulante.
Les réponses que j'ai trouvées pour Bootstrap 3 ne fonctionnent plus.
Le jsfiddle est ici .
<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>
Avec css, vous pouvez simplement faire ça:
.dropdown-toggle::after {
display:none;
}
Supprimez simplement la classe "dropdown-toggle" de l'élément. La liste déroulante fonctionnera toujours si vous avez l'attribut data-toggle comme suit
<button role="button" type="button" class="btn" data-toggle="dropdown">
Dropdown Without Arrow
</button>
le remplacement des styles de classe .dropdown-toggle affecte toutes les listes déroulantes et vous pouvez conserver la flèche dans les autres boutons. C’est pourquoi cela me semble la solution la plus simple.
Je ne recommande aucune des réponses existantes pour les raisons suivantes:
.dropdown-toggle
a plus de style que juste le curseur. Supprimer la classe de l'élément provoque des problèmes de style .
Remplacer .dropdown-toggle
n'a pas de sens. Ce n’est pas parce que vous n’avez pas besoin d’un signe inséré sur un élément en particulier que vous n’en aurez pas besoin plus tard.
::after
ne couvre pas variantes de liste déroulante (certains utilisent ::before
).
Utilisez plutôt une classe .caret-off
personnalisée:
.caret-off::before {
display: none;
}
.caret-off::after {
display: none;
}
supprime la classe "dropdown-toggle"
J'utilisais la réponse acceptée pendant un bon bout de temps dans mon projet mais je suis tombé sur une variable variable utilisée par bootstrap :
$enable-caret: true !default;
Si vous définissez ceci sur false, le curseur sera supprimé sans avoir à créer de code personnalisé.
Mon projet était Ruby/Rails, donc j’utilisais le bootstrap-rubygem . J'ai changé la variable en important un custom-variables.scss
avec la variable ci-dessus définie sur false dans mon application.scss
AVANT le/les fichier (s) bootstrap.scss
.
Si vous souhaitez remplacer la flèche par une autre icône (telle que FontAwesome), il vous suffira de supprimer la bordure du pseudo-élément de.
.dropdown-toggle::after { border: none; }
Si vous supprimez l’adaptation de la classe de menu déroulant comme indiqué ci-dessous, tous les boutons de menu déroulant de votre système n’auront plus le curseur.
.dropdown-toggle::after {
display:none;
}
Mais peut-être que ce n'est pas ce que vous voulez, alors pour supprimer seulement le bouton spécifique, nous allons insérer une classe appelée: remoecaret, et nous ajusterons la classe: dropdown-toggle comme suit:
.removecaret.dropdown-toggle::after {
display: none;
}
et notre html ressemble à quelque chose comme:
<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> Edit</a></li>
</ul>
</div>
Bootstrap génère ceci en utilisant la bordure CSS:
.dropdown-toggle:after {
border: none;
}