36 Stimmen

CSS für den "Abwärtspfeil" in einem <select>-Element?

Ist es möglich, den Abwärtspfeil auf einem Dropdown-Auswahlelement zu stilisieren, d.h. ( <select><option>--></option></select> )

Ich vermute, dass die Antwort aufgrund der Art und Weise, wie der IE dieses spezielle Element behandelt, nein lautet. Wenn es keine Möglichkeit gibt, kennt jemand eine "gefälschte" Dropdown-Box mit JavaScript, die dieses Verhalten imitieren würde, aber mir die Möglichkeit zur Anpassung geben?

2voto

wvanbergen Punkte 2234

Ich weiß nicht, ob es mit CSS stilisierbar ist (wahrscheinlich nicht im IE), aber bitte: verwenden Sie keine "gefälschten" Dropdown-Boxen mit Javascript, denn die Benutzerfreundlichkeit dieser Dinger ist in der Regel grauenhaft. Unter anderem ist die Navigation mit der Tastatur meist nicht möglich.

1voto

MayhemBliz Punkte 185

Sie können dies nur mit CSS und Ihrem Pfeil nach unten als Bild positioniert absolut mit einem "Pointer-Events: none;" siehe mein Beispiel unten zu erreichen:

<select>
  <option value="1">1 Person</option>
  <option value="2">2 People</option>
</select>
<img class="passthrough" src="downarrow.png" />

.passthrough {
    pointer-events: none;
    position: absolute;
    right: 0;
}

0voto

localshred Punkte 2214

Sie müssten Ihr eigenes Dropdown mit versteckten Divs und einem versteckten Eingabeelement erstellen, um zu erfassen, welche Option "ausgewählt" wurde. Meine Vermutung ist, dass der von @Jan Hancic gepostete Link wahrscheinlich das ist, wonach Sie suchen.

0voto

rubbermind Punkte 9

Versuchen Sie dies

   <div style='position:relative;left:0px;top:0px;
        onMouseOver=document.getElementById('visible').style.visibility='visible' 
        id='hidden'>10
   <select style='position:absolute;left:0px;top:0px;cursor:pointer;visibility:hidden;'
        onMouseOut=document.getElementById('visible').style.visibility='hidden'
        onChange='this.form.submit()' 
        id='visible' multiple size='3'>";
   <option selected value=10>10</option>
   <option value=20>20</option>
   <option value=50>50</option>
   </select>
   </div>

0voto

marsupial Punkte 45

Dadurch werden die Eingaben, die Auswahl usw. auf den alten grauen Stil umgestellt, wobei ich nicht sicher bin, ob Sie danach noch etwas ändern können: Unter <head> setzen:

<meta http-equiv="MSThemeCompatible" content="NO">

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X