Mam pole wyboru HTML, które muszę stylizować. Wolałbym używać tylko CSS, ale jeśli będę musiał, użyję jQuery do wypełnienia luk.
Czy ktoś może polecić dobry tutorial lub wtyczkę?
Wiem, Google, ale szukałem przez ostatnie dwie godziny i nie znajduję niczego, co spełnia moje potrzeby.
Musi to być:
- Kompatybilny z jQuery 1.3.2
- Dostępny
- Dyskretny
- Całkowicie konfigurowalny pod względem stylizacji każdego aspektu wybranego pudełka
Czy ktoś wie coś, co spełni moje potrzeby?
jquery
css
html-select
Apoorv Khurasia
źródło
źródło
select
elementów w różnych przeglądarkach. Ale jeśli ludzie chcą żyć z różnicami, możesz je stylizować - łącznie z granicami.Odpowiedzi:
Widziałem kilka wtyczek jQuery, które konwertują
<select>
's na<ol>
' s i<option>
's na<li>
' s, dzięki czemu możesz stylizować to za pomocą CSS. Nie może być zbyt trudne do zrobienia własnego.Oto jeden: https://gist.github.com/1139558 (kiedyś tu był , ale wygląda na to, że strona nie działa).
Użyj tego w ten sposób:
Ułóż to w ten sposób:
źródło
Aktualizacja: od 2013 r. Dwa, które widziałem, warte sprawdzenia to:
Tak!
Od 2012 roku jednym z najlżejszych , elastycznych rozwiązań, jakie znalazłem, jest ddSlick . Odpowiednie (zredagowane) informacje z witryny:
select options
A oto podgląd różnych trybów:
źródło
Jeśli chodzi o CSS, Mozilla wydaje się być najbardziej przyjazna, szczególnie od FF 3.5+. Przeglądarki Webkit zazwyczaj robią swoje i ignorują każdy styl. IE jest bardzo ograniczony, chociaż IE8 pozwala przynajmniej na określenie koloru / szerokości obramowania.
Poniższe rzeczy wyglądają całkiem ładnie w FF 3.5+ (oczywiście wybierając preferowany kolor):
Ale jeśli chodzi o IE, musisz wyłączyć kolor tła w opcji, jeśli nie chcesz, aby był wyświetlany, gdy menu opcji nie jest rozwinięte. I, jak powiedziałem, webkit robi swoje.
źródło
Znaleźliśmy na to prosty i przyzwoity sposób. Jest cross-browser, degradowalny i nie psuje postu formularza. Najpierw ustaw krycie pola wyboru na 0.
dzięki temu nadal możesz go kliknąć
Następnie utwórz element div o takich samych wymiarach jak pole wyboru. Element div powinien znajdować się pod polem wyboru jako tło. Aby to osiągnąć, użyj {pozycja: bezwzględna} i z-indeksu.
Zaktualizuj innerHTML elementu div za pomocą javascript. Easypeasy z jQuery:
Otóż to! Po prostu nadaj styl swojemu elementowi div zamiast pola wyboru. Nie testowałem powyższego kodu, więc prawdopodobnie będziesz potrzebować go ulepszyć. Ale miejmy nadzieję, że rozumiesz sedno.
Myślę, że to rozwiązanie jest lepsze niż {-webkit-look: none;}. Przeglądarki powinny co najwyżej dyktować interakcję z elementami formularza, ale na pewno nie sposób ich początkowego wyświetlania na stronie, ponieważ to psuje projekt witryny.
źródło
Oto mała wtyczka, jeśli głównie chcesz
select
elemencieoptions
Ajax, właściwy zindex itp.)ul
,li
generowanych znacznikówWtedy jquery.yaselect.js może być lepszym rozwiązaniem . Po prostu:
A ostatni znacznik to:
Sprawdź to na github.com
źródło
Do pewnego stopnia możesz stylizować za pomocą samego CSS
Ale to zależy wyłącznie od przeglądarki. Niektóre przeglądarki są uparte.
Jednak to tylko zaprowadzi Cię do tej pory i nie zawsze wygląda to dobrze. Aby uzyskać pełną kontrolę, musisz zastąpić opcję select przez jQuery własnym widżetem, który emuluje funkcjonalność pola wyboru. Upewnij się, że gdy JS jest wyłączony, na swoim miejscu znajduje się normalne pole wyboru. Umożliwia to większej liczbie użytkowników korzystanie z formularza i pomaga w ułatwieniach dostępu.
źródło
Większość przeglądarek nie obsługuje dostosowywania zaznaczonego tagu za pomocą CSS. Ale znalazłem ten javascript, który może być użyty do stylizacji tagu wyboru. Ale jak zwykle brak obsługi przeglądarek IE.
http://ryanfait.com/resources/custom-checkboxes-and-radio-buttons/ Zauważyłem błąd w tym, że atrybut Onchange nie działa
źródło
Właśnie znalazłem to, co wydaje się naprawdę dobre.
http://www.dfc-e.com/metiers/multimedia/opensource/jqtransform/
źródło
Jeśli masz rozwiązanie bez jQuery. Link, w którym można zobaczyć działający przykład: http://www.letmaier.com/_selectbox/select_general_code.html (styl z dodatkowym css)
Część stylistyczna mojego rozwiązania:
Teraz kod HTML wewnątrz tagu body:
źródło
Zaktualizowano na rok 2014: nie potrzebujesz do tego jQuery . Możesz w pełni stylizować pole wyboru bez jQuery za pomocą StyleSelect . Np. Biorąc pod uwagę następujące pole wyboru:
Uruchomienie
styleSelect('select.demo')
utworzy stylizowane pole wyboru w następujący sposób:źródło
Stworzyłem wtyczkę jQuery, SelectBoxIt , kilka dni temu. Próbuje naśladować zachowanie zwykłego pola wyboru HTML, ale pozwala również stylizować i animować pole wyboru za pomocą jQueryUI. Spójrz i daj mi znać, co myślisz.
http://www.selectboxit.com
źródło
Powinieneś spróbować użyć wtyczki jQuery, takiej jak ikSelect .
Starałem się, aby był bardzo konfigurowalny, ale łatwy w użyciu.
http://github.com/Igor10k/ikSelect
źródło
Wydaje się, że to stara, ale tutaj bardzo interesująca wtyczka - http://uniformjs.com
źródło
na ten używa
twitter-bootstrap
stylów, aby włączyćselect
wdropdown
menu https://github.com/silviomoreto/bootstrap-selectźródło
Prostym rozwiązaniem jest wypaczenie zaznaczonego pola wewnątrz elementu div i nadanie mu stylu pasującego do projektu. Ustaw krycie: 0, aby zaznaczyć pole, sprawi, że pole wyboru będzie niewidoczne. Wstaw tag span za pomocą jQuery i dynamicznie zmieniaj jego wartość, jeśli użytkownik zmieni rozwijaną wartość. Pełna demonstracja pokazana w tym samouczku z objaśnieniem kodu. Mam nadzieję, że to rozwiąże twój problem.
Kod JQuery wygląda podobnie do tego.
źródło