Ich habe ein Auswahlelement, ich möchte den Pfeil entfernen, dann kann ich ein anderes Symbol hinzufügen. Ich kann das für Firefox Safari und Chrome tun, aber dies funktionierte nicht in IE9 .
.styled-select select
{
border: 0 !important; /*Removes border*/
-webkit-appearance: none; /*Removes default chrome and safari style*/
-moz-appearance: none; /*Removes default style Firefox*/
background: url('select_icon.png') no-repeat;
background-position: 179px 7px;
text-indent: 0.01px;
text-overflow: "";
color: #FCAF17;
width:200px;
}
SIEHE Fiddle auf IE9 . Alles was ich brauche ist den Pfeil in ie9 zu entfernen. Bitte JSFIDDLE Antwort.
html
css
html-select
Muath
quelle
quelle
Antworten:
In IE9 ist dies mit einem reinen Hack möglich, wie von @Spudley empfohlen. Da Sie die Höhe und Breite des Div angepasst und ausgewählt haben, müssen Sie Änderungen vornehmen
div:before
CSS so Ihrem entspricht.Wenn es sich um IE10 handelt, ist die Verwendung von css3 möglich
Wenn Sie jedoch an einem jQuery-Plugin interessiert sind, versuchen
Chosen.js
Sie es oder erstellen Sie ein eigenes in js.quelle
display: none;
mitopacity: .01
. Es wird fast unmöglich sein, es zu sehen, aber es wird immer noch anklickbar sein.select:hover::-ms-expand
wie erwähnt istselector:state::pseudo
. Ich konnte noch nicht mit IE testen einen Versuch wert :)Ich würde meine Lösung vorschlagen, die Sie in diesem GitHub-Repo finden können . Dies funktioniert auch für IE8 und IE9 mit einem benutzerdefinierten Pfeil, der von einer Symbolschrift stammt.
Beispiele für ein benutzerdefiniertes Cross-Browser-Dropdown-Menü Aktionen: Überprüfen Sie diese mit allen Browsern, um die Cross-Browser-Funktion anzuzeigen.
Beginnen wir mit den modernen Browsern und sehen dann die Lösung für die älteren.
Dropdown-Pfeil für Chrome, Firefox, Opera, Internet Explorer 10+
Für diese Browser ist es einfach, dasselbe Hintergrundbild für das Dropdown-Menü festzulegen, um denselben Pfeil zu erhalten.
Dazu müssen Sie den Standardstil des Browsers für das
select
Tag zurücksetzen und neue Hintergrundregeln festlegen (wie zuvor vorgeschlagen).Die
appearance
Regeln werden auf "Keine" gesetzt, um die Standardregeln des Browsers zurückzusetzen. Wenn Sie für jeden Pfeil den gleichen Aspekt haben möchten, sollten Sie sie beibehalten.Die
background
Regeln in den Beispielen werden mit SVG-Inline-Bildern festgelegt, die unterschiedliche Pfeile darstellen. Sie sind zu 98% von links positioniert, um einen gewissen Abstand zum rechten Rand zu erhalten (Sie können die Position ganz einfach nach Ihren Wünschen ändern).Um das korrekte browserübergreifende Verhalten beizubehalten, muss nur die folgende Regel beibehalten werden
outline
. Diese Regel setzt den Standardrahmen zurück, der (in einigen Browsern) angezeigt wird, wenn auf das Element geklickt wird. Alle anderen Regeln können bei Bedarf einfach geändert werden.Dropdown-Pfeil für Internet Explorer 8 (IE8) und Internet Explorer 9 (IE9) mit Symbolschriftart
Das ist der schwierigere Teil ... oder vielleicht auch nicht.
Es gibt keine Standardregel
select::-ms-expand
zum Ausblenden der Standardpfeile für diese Browser (wie für IE10 +). Die Lösung besteht darin , den Teil des zu verbergen Dropdown-Menüs den Standardpfeil enthält, und eine Pfeilsymbolschrift (oder eine SVG-Datei, falls Sie dies bevorzugen) einzufügen, die der in den anderen Browsern verwendeten SVG-Datei ähnelt (siehe dieselect
CSS-Regel Details zum verwendeten Inline-SVG).Der allererste Schritt besteht darin, eine Klasse festzulegen, die den Browser erkennen kann. Aus diesem Grund habe ich die bedingten IE-IFs am Anfang des Codes verwendet. Diese IFs werden verwendet, um bestimmte Klassen an die anzuhängen
html
Tag und den älteren IE-Browser zu erkennen.Danach muss jeder
select
im HTML-Code von einemdiv
(oder einem beliebigen Tag, das ein Element umschließen kann) umbrochen werden . Fügen Sie in diesem Wrapper einfach die Klasse hinzu, die die Symbolschrift enthält.In einfachen Worten wird dieser Wrapper verwendet, um das zu simulieren
select
Tag .Um sich wie ein Dropdown-Menü zu verhalten, muss der Wrapper einen Rand haben, da wir den Rand verbergen, der von der kommt
select
.Beachten Sie, dass wir den Rahmen nicht verwenden können,
select
da wir den Standardpfeil ausblenden müssen, der ihn um 25% länger als der Wrapper verlängert. Folglich sollte sein rechter Rand nicht sichtbar sein, da wir diese 25% mehr durch die versteckenoverflow: hidden
Regel die auf die angewendet wirdselect
selbst .Die benutzerdefinierte Pfeilsymbolschrift wird in die Pseudoklasse eingefügt,
:before
in der die Regelcontent
die Referenz für den Pfeil enthält (in diesem Fall handelt es sich um eine rechte Klammer).Wir platzieren diesen Pfeil auch an einer absoluten Position, um ihn so weit wie möglich zu zentrieren (wenn Sie verschiedene Symbolschriftarten verwenden, denken Sie daran, diese durch Ändern der oberen und linken Werte und der Schriftgröße entsprechend anzupassen).
Sie können den Hintergrundpfeil oder den Symbolschriftpfeil ganz einfach erstellen und ersetzen, wobei jeder Pfeil, den Sie möchten, einfach in der
background-image
Regel geändert oder selbst eine neue Symbolschriftdatei erstellt wird.quelle
Falls Sie die Klasse und die Pseudoklasse verwenden möchten:
.simple-control
ist deine CSS-Klasse:disabled
ist eine Pseudoklassequelle