Próbuję zastąpić strzałkę zaznaczenia własnym obrazem. Włączam zaznaczenie w div o tym samym rozmiarze, ustawiam tło zaznaczenia jako przezroczyste i dołączam obraz (o tym samym rozmiarze co strzałka) w prawym górnym rogu elementu div jako tło.
Działa tylko w Chrome.
Jak mogę sprawić, by działało w Firefoksie i IE9, skąd otrzymuję to:
.styled-select {
width: 100px;
height: 17px;
overflow: hidden;
overflow: -moz-hidden-unscrollable;
background: url(images/downarrow_blue.png) no-repeat right white;
border: 2px double red;
display: inline-block;
position: relative;
}
.styled-select select {
background: transparent;
-webkit-appearance: none;
width: 100px;
font-size: 11px;
border: 0;
height: 17px;
position: absolute;
left: 0;
top: 0;
}
body {
background-color: #333333;
color: #FFFFFF;
}
.block label {
color: white;
}
<HTML>
<HEAD>
</HEAD>
<BODY>
<p/>
<form action="/prepareUpdateCategoryList.do?forwardto=search">
<fieldset class="block" id="searchBlock">
<p>
<label style="width:80px">Class</label>
<div class="styled-select">
<select property="voucherCategoryClass">
<option value="0">Select </option>
<option value="7382">steam </option>
</select>
</div>
</p>
</fieldset>
</form>
</BODY>
</HTML>
appearance: menulist !important;-moz-appearance: menulist !important;-webkit-appearance: menulist !important;-o-appearance: menulist !important;
Skonfigurowałem
select
niestandardową strzałkę podobną do odpowiedzi Julio, jednak nie ma ona ustawionej szerokości i używasvg
jako obrazu tła. (arrow_drop_down
z ikon material-ui)Jeśli chcesz, aby działał również w IE, zaktualizuj strzałkę svg do base64 i dodaj:
Aby ułatwić rozmiar i rozmieszczenie strzałki, użyj tego pliku svg:
Nie ma odstępów po bokach strzały.
źródło
background-position: top 5px right 4px;
background: url('data:image/svg+xml;utf-8,<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24"><path d="M7 10l5 5 5-5z"/><path d="M0 0h24v24H0z" fill="none"/></svg>') 100% 50% no-repeat transparent;
background-position-y: 5px;
zamiast% (np.background-position-y: 50%;
)?Praca tylko z jedną klasą:
http://jsfiddle.net/qhCsJ/4120/
źródło
background-position-x: calc( 100% - 5px );
Oto elegancka poprawka, która używa rozpiętości do pokazania wartości.
Układ jest taki:
JsFiddle
źródło
Sprawdziłoby się to szczególnie dla osób używających Bootstrap, przetestowanych w najnowszych wersjach przeglądarek:
źródło
Sprawdź to To jest hacky, proste:
-prefix-appearance
abynone
usunąć styletext-indent
aby "przesunąć" zawartość nieco w prawotext-overflow
pusty ciąg. Wszystko, co wykracza poza jego szerokość, stanie się ... niczym! Dotyczy to również strzałki.Teraz możesz dowolnie stylizować :)
Zobacz na JSFiddle
źródło
Działa we wszystkich przeglądarkach:
źródło
Stylizuj etykietę za pomocą CSS i używaj zdarzeń wskaźnika:
a względny CSS to
Właśnie użyłem tutaj strzałki w dół, ale możesz ustawić blok z obrazem tła. Oto brzydka próbka skrzypiec: https://jsfiddle.net/1rofzz89/
źródło
Odniosłem się do tego posta , działał jak czarujący, tyle że nie zasłaniał strzałki w przeglądarce IE.
źródło
Załóżmy, że selectDrop to klasa obecna w tagu HTML, więc tyle kodu wystarczy, aby zmienić domyślną ikonę strzałki:
źródło