Bei Bootstrap 3 war das ziemlich einfach, man musste nur span ändern und stattdessen das gewünschte Symbol hinzufügen. Aber das scheint bei Bootstrap 4 nicht der Fall zu sein. Oder übersehe ich vielleicht etwas?
Wie auch immer, hier ist der grundlegende Code dafür:
Kann mir bitte jemand sagen, ob es möglich ist, das Dropdown-Symbol hier zu ändern und wie? Ich möchte eines von Fontawesome hinzufügen.
Carol Skelly
Bootstrap 5 (Update 2023)
Das Ändern des Dropdown-Einfügezeichens in ein Symbol funktioniert in Bootstrap 5 immer noch auf die gleiche Weise. Vergessen Sie nicht, das zu ändern data-toggle Zu data-bs-toggle:
ODERentfernen Sie einfach die dropdown-toggle Klasse von der Schaltfläche, da ihr einziger Zweck darin zu bestehen scheint, das Caret-Symbol anzuzeigen.
display:none ist eine bessere Lösung, da verschachtelte Dropdowns (Dropdown innerhalb von Dropdown) nicht funktionieren, wenn Sie die Dropdown-Umschaltklasse entfernen.
– Astralmeister
4. März 2018 um 14:19 Uhr
Wie überschreibe ich die Standardeinstellung durch eine andere?
– Leslie Nyahwa
13. Juni 2021 um 17:17 Uhr
Chris45
Das Standard-Caret ist kein Symbol, sondern ein Rahmen mit diesen Eigenschaften:
Also, wenn Sie einstellen .dropdown-toggle::after haben border:none!importantkönnen Sie die Verwendung content um das gewünschte Symbol festzulegen.
Der Code, den ich verwende, ist dieser:
.dropdown-toggle::after {
border: none!important;
font: normal normal normal 14px/1 FontAwesome;
content: "\f107"!important; /* the desired FontAwesome icon */
vertical-align: 0; /* to center vertically */
}
Mit dieser Methode können Sie dank der hinzugefügten .show-Klasse auch das FontAwesome-Symbol ändern, wenn das Dropdown-Menü sichtbar ist:
li.menu-item.show a.dropdown-toggle.::after {
content: "\f106"!important /* the different icon */
}
Ich habe etwas Ähnliches wie die akzeptierte Antwort getan und das Standardcursor von „font-awesome“ wie folgt in vertikale Auslassungspunkte geändert:
.dropdown-toggle-ellipsis::after {
display: none;
}
.dropdown-toggle-ellipsis::before {
display: inline-block;
padding: 0.5rem;
font: normal normal normal 14px/1 FontAwesome;
content: "\f142";
}
Bewerben Sie sich einfach dropdown-toggle-ellipsis als zusätzliche Klasse zu Ihrer Umschalttaste.
Der Hauptunterschied bei dieser Lösung besteht darin, dass das eigentliche Symbol (\f142 hier) ist jetzt in Ihren Stylesheets definiert, nicht in Ihrem Markup. Ob das ein Pluspunkt ist, hängt natürlich von Ihrer Situation ab.
Eine Lösung, die es ermöglicht, den HTML-Code unverändert zu lassen und einfach eine CSS-Regel hinzuzufügen:
.dropdown-toggle::after {
border: none;
font: normal normal normal 12px/1 'Font Awesome 5 Free';
content: "\f078";
vertical-align: 0;
}
Dies funktioniert mit Font Awesome 5. Die Content-Eigenschaft kann auf alle verfügbaren Unicode-Werte gesetzt werden. Zum Beispiel für den Chevron-Down (https://fontawesome.com/icons/chevron-down?style=solid) es ist f078.
Falls jemand anderes über eine Google-Suche nach dem Einfügen des Dropdown-Symbols gelangt, ist hier eine gute Möglichkeit:
Dies verwendet die Schriftart Awesome 5 und die pl-1 Fügt links neben dem Dropdown-Symbol etwas Abstand hinzu, damit es einen schöneren Abstand hat.
Das Ergebnis ist ein Symbol, das dem auf GitHub sehr ähnlich ist:
Zarepheth
Mithilfe der Vorschläge in den anderen Antworten habe ich in der Haupt-CSS-Datei meiner App Regeln für den Dropdown-Umschalter hinzugefügt.
Der Schlüssel liegt darin, dass Bootstrap die Klasse „collapsed“ zu Elementen mit „dropdown-toggle“ hinzufügt, wenn der Inhalt ausgeblendet ist, und die Klasse entfernt, wenn der Inhalt angezeigt wird.
/* Align Bootstrap default Dropdown icon closer to vertical center of collapsed icon. */
.dropdown-toggle::after {
vertical-align: 0.15em;
}
/* Make Dropdown icon point right when collapsed, with Browser default vertical alignment. */
.collapsed.dropdown-toggle::after {
border-top: 0.3em solid transparent;
border-left: 0.3em solid;
border-bottom: 0.3em solid transparent;
border-right: 0;
vertical-align: unset;
}
Jeremy Lynch
Für diejenigen, die Font-awesome NICHT verwenden, können Sie einfach die verwenden url() CSS-Funktion und fügen Sie den SVG-Code direkt in das CSS ein: