Mam listę wybranych płci.
Kod:
<select>
<option>male</option>
<option>female</option>
<option>others</option>
</select>
Chcę użyć obrazu z rozwijanej listy jako drop-down-icon.jpeg.
Chcę dodać przycisk zamiast rozwijanej ikony.
Jak to zrobić?
<option>
; obsługiwane przez wszystko, począwszy od IE 8.0, małe i proste.Odpowiedzi:
W Firefoksie możesz po prostu dodać obraz tła do opcji:
Jeszcze lepiej, możesz w ten sposób oddzielić HTML i CSS
HTML
CSS
W innych przeglądarkach jedynym sposobem byłoby użycie jakiejś biblioteki widżetów JS, jak na przykład jQuery UI , np. Użycie Selectable .
Od jQuery UI 1.11 dostępny jest widget Selectmenu , który jest bardzo zbliżony do tego, czego chcesz.
źródło
Moim rozwiązaniem jest użycie FontAwesome, a następnie dodanie obrazów z biblioteki jako tekstu! Potrzebujesz tylko Unicode i znajdziesz je tutaj: FontAwesome Reference File for Unicodes
Oto przykład filtru stanu:
źródło
Możesz użyć iconselect.js; Wybór ikony / obrazu (combobox, lista rozwijana)
Demo i pobieranie; http://bug7a.github.io/iconselect.js/
Użycie HTML;
Użycie JavaScript;
źródło
<!doctype html>
zdefiniowane.Masz już kilka odpowiedzi, które sugerują użycie JavaScript / jQuery. Zamierzam dodać alternatywę, która używa tylko HTML i CSS bez żadnego JS.
Podstawowym pomysłem jest użycie zestawu przycisków radiowych i etykiet (które będą aktywować / dezaktywować przyciski radiowe) oraz przy kontroli CSS, że będzie wyświetlana tylko etykieta skojarzona z wybranym przyciskiem radiowym. Jeśli chcesz zezwolić na wybieranie wielu wartości, możesz to osiągnąć, używając pól wyboru zamiast przycisków radiowych.
Oto przykład. Kod może być nieco bardziej bałaganiarski (szczególnie w porównaniu z innymi rozwiązaniami):
źródło
Innym rozwiązaniem tego problemu dla różnych przeglądarek jQuery jest http://designwithpc.com/Plugins/ddSlick, które jest stworzone właśnie do tego celu.
źródło
$(...).ddslick
nie jest funkcją w konsoli FirefoksaW przypadku krajów, języków lub walut możesz używać emoji.
Działa z prawie każdą przeglądarką / systemem operacyjnym obsługującym korzystanie z emoji.
źródło
W przypadku obrazu dwukolorowego możesz użyć Fontello i zaimportować dowolny niestandardowy glif, którego chcesz użyć. Po prostu utwórz obraz w programie Illustrator, zapisz go w formacie SVG i upuść na stronie Fontello, a następnie pobierz niestandardową czcionkę gotową do zaimportowania. Bez JavaScript!
źródło
Wypróbowałem kilka niestandardowych opcji wyboru opartych na jquery z obrazami, ale żaden nie działał w responsywnych układach. W końcu trafiłem na Bootstrap-Select. Po pewnych modyfikacjach udało mi się stworzyć ten kod.
Kod i repozytorium github tutaj
źródło
Dla tych, którzy chcą wyświetlać ikonę i akceptują "czarno-białe" rozwiązanie, jedną z możliwości jest użycie encji znakowych:
Twoje ikony mogą być przechowywane w niestandardowej czcionce. Oto przykład z użyciem czcionki FontAwesome : https://jsfiddle.net/14606fv9/2/ https://jsfiddle.net/14606fv9/2/
Jedną z korzyści jest to, że nie wymaga JavaScript. Zwróć jednak uwagę, że ładowanie pełnej czcionki nie spowalnia ładowania strony.
Uwaga: rozwiązanie polegające na użyciu obrazu tła wydaje się już nie działać w przeglądarce Firefox (przynajmniej w wersji 57 „Quantum”):
źródło
Alvaros JS bezpłatna odpowiedź była dla mnie świetnym początkiem i naprawdę starałem się uzyskać odpowiedź naprawdę wolną od JS, która nadal zapewniałaby wszystkie funkcje oczekiwane od Select z obrazami, ale niestety zagnieżdżanie formularzy było upadkiem. Wstawiam tutaj dwa rozwiązania; moje główne rozwiązanie, które wykorzystuje 1 linię JavaScript i całkowicie wolne od JavaScript rozwiązanie, które nie będzie działać w innym formularzu, ale może być przydatne w menu nawigacyjnych.
Niestety w kodzie jest trochę powtórzeń, ale kiedy myślisz o tym, co robi Select, ma to sens. Po kliknięciu opcji kopiuje ten tekst do wybranego obszaru, tj. Kliknięcie 1 z 4 opcji nie zmieni 4 opcji, ale górna część powtórzy teraz tę, którą kliknąłeś. Aby to zrobić z obrazami wymagałoby JavaScript, lubrrr ... musisz zduplikować wpisy.
W moim przykładzie mamy listę gier (Produkty), które mają wersje. Każdy produkt może mieć również rozszerzenia, które również mogą mieć wersje. Dla każdego Produktu podajemy użytkownikowi listę każdej wersji, jeśli jest więcej niż jedna, wraz z obrazem i tekstem dotyczącym wersji.
Używając JS do odznaczania pola wyboru, możemy mieć wiele instancji w formularzu. Tutaj rozszerzyłem, aby wyświetlić listę rozszerzeń, które również mają tę samą logikę co do wersji.
Oczywiście wymaga to sporej ilości CSS, które zawarłem tylko w tym JSFiddle, aby zmniejszyć rozmiar tej i tak już ogromnej odpowiedzi. Użyłem Bootstrap 4, aby zmniejszyć potrzebną ilość, a także aby dopasować go do innych kontrolek Bootstrap i wszelkich dostosowań strony, które zostały wprowadzone.
Obrazy są ustawione na 75 pikseli, ale można to łatwo zmienić w 5 wierszach w
.rich-select
i.rich-select-option-body img
źródło
Mam ten sam problem. Moim rozwiązaniem był każdy przycisk radiowy, z obrazem po prawej stronie. Ponieważ w radiu możesz wybrać tylko jedną opcję, działa to (jak).
Działa dobrze dla mnie. Mam nadzieję, że pomoże to komuś innemu.
źródło
<select>
niekoniecznie oznacza wybranie pojedynczej wartościUżywa ms-Dropdown: https://github.com/marghoobsuleman/ms-Dropdown
Zasób danych to json. Ale nie musisz używać json. Jeśli chcesz, możesz użyć z css.
Przykład CSS: https://github.com/marghoobsuleman/ms-Dropdown/tree/master/examples
Przykład Json: http://jsfiddle.net/tcibikci/w3rdhj4s/6
HTML
Scenariusz
źródło
AKTUALIZACJA: od 2018 r. Wydaje się, że teraz działa. Przetestowano w Chrome, Firefox, IE i Edge
źródło