Mam wybrany element, chcę usunąć strzałkę, mogę dodać inną ikonę .. Mogę to zrobić dla Firefox Safari i Chrome, ale to nie działa w 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;
}
ZOBACZ Fiddle na IE9 . wszystko, czego potrzebuję, to usunąć strzałkę w ie9 Proszę o odpowiedź JSFIDDLE.
html
css
html-select
Muath
źródło
źródło
Odpowiedzi:
W IE9 jest to możliwe dzięki hackowaniu, zgodnie z zaleceniami @Spudley. Ponieważ dostosowałeś wysokość i szerokość div i wybierzesz, musisz zmienić
div:before
css, aby pasował do twojego.W przypadku, gdy jest to IE10, możliwe jest użycie poniższego css3
Jeśli jednak interesuje Cię wtyczka jQuery, spróbuj
Chosen.js
lub możesz stworzyć własną wtyczkę w js.źródło
display: none;
zopacity: .01
. Będzie prawie niemożliwe, aby go zobaczyć, ale nadal będzie można go kliknąć.select:hover::-ms-expand
stan najechania na pseudoelement był taki, jak wspomnianoselector:state::pseudo
. Nie mogłem przetestować z IE, ale warto spróbować :)Sugerowałbym moje rozwiązanie, które można znaleźć w tym repozytorium GitHub . Działa to również dla IE8 i IE9 z niestandardową strzałką pochodzącą z czcionki ikony.
Przykłady niestandardowych menu rozwijanych między przeglądarkami w akcji: sprawdź je we wszystkich przeglądarkach, aby zobaczyć funkcję różnych przeglądarek.
W każdym razie zacznijmy od nowoczesnych przeglądarek, a potem zobaczymy rozwiązanie dla starszych.
Rozwijana strzałka dla Chrome, Firefox, Opera, Internet Explorer 10+
W tych przeglądarkach łatwo jest ustawić ten sam obraz tła dla listy rozwijanej , aby mieć tę samą strzałkę.
Aby to zrobić, musisz zresetować domyślny styl przeglądarki dla
select
tagu i ustawić nowe reguły tła (jak sugerowano wcześniej).Te
appearance
zasady są ustawione na none zresetować przeglądarek domyślnych, jeśli chcesz mieć taki sam wygląd dla każdej strzałki, należy przechowywać je w miejscu.Te
background
zasady w przykładach są ustawione z SVG inline obrazów, które reprezentują różne strzały. Są ustawione w 98% od lewej, aby zachować pewien margines do prawej krawędzi (możesz łatwo zmodyfikować pozycję, jak chcesz).Aby zachować prawidłowe działanie różnych przeglądarek, jedyną inną regułą, którą należy pozostawić, jest
outline
. Ta reguła resetuje domyślne obramowanie, które pojawia się (w niektórych przeglądarkach) po kliknięciu elementu. W razie potrzeby wszystkie pozostałe reguły można łatwo zmodyfikować.Rozwijana strzałka dla Internet Explorer 8 (IE8) i Internet Explorer 9 (IE9) przy użyciu Icon Font
To jest trudniejsza część ... A może nie.
Nie ma standardowej reguły ukrywania domyślnych strzałek w tych przeglądarkach (np. W
select::-ms-expand
IE10 +). Rozwiązaniem jest ukrycie części listy rozwijanej zawierającej domyślną strzałkę i wstawienie czcionki ikony strzałki (lub SVG, jeśli wolisz) podobnej do SVG używanej w innych przeglądarkach (więcej informacji znajdziesz wselect
regule CSS szczegółowe informacje na temat zastosowanego wbudowanego pliku SVG).Pierwszym krokiem jest ustawienie klasy, która rozpoznaje przeglądarkę: to jest powód, dla którego użyłem warunkowych IF IE na początku kodu. Te IF służą do dołączania określonych klas do
html
tagu, aby rozpoznać starszą przeglądarkę IE.Następnie każdy
select
element HTML musi być opakowanydiv
(lub jakimkolwiek znacznikiem, który może otoczyć element). W tym opakowaniu wystarczy dodać klasę zawierającą czcionkę ikony.Mówiąc prosto, to opakowanie służy do symulacji
select
tagu.Aby zachowywać się jak lista rozwijana, opakowanie musi mieć obramowanie, ponieważ ukrywamy ten, który pochodzi z
select
.Zauważ, że nie możemy użyć
select
obramowania, ponieważ musimy ukryć domyślną strzałkę wydłużając ją o 25% bardziej niż opakowanie. W konsekwencji jego prawa krawędź nie powinna być widoczna, ponieważ ukrywamy to 25% więcej przezoverflow: hidden
regułę zastosowaną doselect
samej siebie.Niestandardowa ikona-font strzałki jest umieszczana w pseudoklasie, w
:before
której regułacontent
zawiera odniesienie do strzałki (w tym przypadku jest to prawy nawias).Umieszczamy również tę strzałkę w absolutnej pozycji, aby wyśrodkować ją tak bardzo, jak to możliwe (jeśli używasz różnych czcionek ikon, pamiętaj, aby dostosować je odpowiednio, zmieniając górne i lewe wartości oraz rozmiar czcionki).
Możesz łatwo utworzyć i zastąpić strzałkę w tle lub strzałkę czcionki ikony, z każdą, którą chcesz, po prostu zmieniając ją w
background-image
regule lub samodzielnie tworząc nowy plik czcionki ikony.źródło
Jeśli chcesz użyć klasy i pseudoklasy:
.simple-control
to Twoja klasa CSS:disabled
jest pseudoklasąźródło