Ich habe es versucht: http://jsfiddle.net/ilyaD/KGcC3/
HTML:
<select name="state" class="ddList">
<option value="">(please select a state)</option>
<option class="lt" value="--">none</option>
<option class="lt" value="AL">Alabama</option>
<option class="lt" value="AK">Alaska</option>
<option class="lt" value="AZ">Arizona</option>
<option class="lt" value="AR">Arkansas</option>
<option class="lt" value="CA">California</option>
<option class="lt" value="CO">Colorado</option>
</select>
CSS:
select { width: 400px; text-align: center; }
select .lt { text-align: center; }
Wie Sie sehen können, funktioniert es nicht. Gibt es eine reine CSS-Möglichkeit, Text im Auswahlfeld zu zentrieren?
Antworten:
Ich befürchte, dass dies mit einfachem CSS nicht möglich ist und nicht vollständig browserübergreifend kompatibel gemacht werden kann.
Mit einem jQuery-Plugin können Sie jedoch das Dropdown-Menü gestalten:
https://www.filamentgroup.com/lab/jquery-ui-selectmenu-an-aria-accessible-plugin-for-styling-a-html-select.html
Dieses Plugin verbirgt das
select
Element und erstelltspan
Elemente usw. im laufenden Betrieb, um einen benutzerdefinierten Dropdown-Listenstil anzuzeigen. Ich bin mir ziemlich sicher, dass Sie die Stile in den Bereichen usw. ändern können, um die Elemente mittig auszurichten.quelle
Für Chrome gibt es eine Teillösung :
Die ausgewählte Option wird zentriert, nicht jedoch die Optionen in der Dropdown-Liste.
quelle
text-align: center
.width
ist nicht nötig.Das ist für die richtige Ausrichtung. Versuch es:
Die Browserunterstützung für das
text-align-last
Attribut finden Sie hier: https://www.w3schools.com/cssref/css3_pr_text-align-last.asp Es sieht so aus, als ob nur Safari es noch nicht unterstützt.quelle
text-align-last: right;
zucenter
den Labels in der Mitte gewechselt habe ).Sie müssen die CSS-Regel in die Auswahlklasse einfügen.
Verwenden Sie CSS-Texteinzug
Beispiel
CSS-Code
quelle
Ja, es ist möglich. Sie können text-align-last verwenden
quelle
2020, ich benutze:
quelle
nur mit diesem:
quelle
quelle
Diese JS-Funktion sollte für Sie funktionieren
Vollständiger Codepen hier: http://codepen.io/anon/pen/NxyovL
quelle
Ich bin immer mit dem folgenden Hack durchgekommen, damit es nur mit CSS funktioniert.
Das Auffüllen zentriert den Text und kann an die Textgröße angepasst werden :)
Dies ist aus Sicht der Validierung offensichtlich nicht 100% korrekt, aber es macht den Job :)
quelle
Alternative "gefälschte" Lösung, wenn Sie eine Liste mit Optionen haben, deren Textlänge ähnlich ist (z. B. Seitenauswahl):
Dies funktioniert in Chrome, Firefox und Edge. Der Trick besteht darin, den Text von links in die Mitte zu verschieben und dann die Hälfte der Länge in px, em oder was auch immer des Optionstextes zu subtrahieren.
Beste Lösung IMO (im Jahr 2017) ersetzt weiterhin die Auswahl über JS und erstellt Ihr eigenes gefälschtes Auswahlfeld mit divs oder was auch immer und bindet Klickereignisse für die browserübergreifende Unterstützung darauf.
quelle
Nicht ganz zentriert, aber anhand des obigen Beispiels können Sie im Auswahlfeld einen linken Rand erstellen.
quelle
text-indent
zum<select>
Tag hinzufügen , wie @marc carreras sagte?das hat bei mir funktioniert:
quelle
Versuche dies :
quelle
Sie können nicht wirklich anpassen
<select>
oder<option>
viel. Die einzige Möglichkeit (browserübergreifend) besteht darin, manuell ein Dropdown-Menü mit divs und css / js zu erstellen, um etwas Ähnliches zu erstellen.quelle
Wenn Sie keine Lösung gefunden haben, können Sie diesen Trick für AngularJS oder Js verwenden, um den ausgewählten Wert mit einem Text auf dem Div abzubilden. Diese Lösung ist vollständig CSS-konform für Angular, benötigt jedoch eine Zuordnung zwischen Select und Div:
Ich hoffe, dies könnte für jemanden nützlich sein, da ich einen Tag gebraucht habe, um diese Lösung auf Phonegap zu finden.
quelle
Während Sie den Optionstext nicht innerhalb einer Auswahl zentrieren können, können Sie ein absolut positioniertes Div über die Auswahl legen, um denselben Effekt zu erzielen:
Stellen Sie sicher, dass sowohl div als auch select feste Positionen im Dokument haben.
quelle
Es ist noch nicht 100%, aber Sie können dieses Snippet verwenden!
text-align-last: center; // Für Chrome Textausrichtung: Mitte; // Für Firefox
Funktioniert momentan nicht auf Safari oder Edge!
quelle
Wenn die Optionen statisch sind, können Sie in Ihrem Auswahlfeld auf das Änderungsereignis warten und für jedes einzelne Element eine Auffüllung hinzufügen
quelle
füge & nbsp so hinzu ...
bis du einen Effekt von mittig ausgerichtetem Text bekommst
quelle