Jak zastąpić pole typu checkbox obrazkiem – krótka instrukcja zamiany checkboxa na grafikę
Czasami tworząc listę opcji do wyboru chciałoby się zrobić to niestandardowo, bardziej oryginalnie, w mniej nudny sposób. Po co zaznaczać opcje przedstawione jako tekst, skoro można dodać do nich obrazek i uczynić wybór przyjemniejszym. Jeśli nie bardzo rozumiesz o co mi chodzi, spójrz poniżej:
Chodzi o to, by po kliknięciu w obrazek zaznaczał się input (w tym przypadku checkbox). Możemy wtedy odczytać, który input został zaznaczony i odpowiednio zareagować. Jak więc ustawić input jako obrazek?
Utworzyłam trzy inputy w formie listy nienumerowanej, by łatwiej było manipulować ich ustawieniem. Listę wyświetlę w poziomie, by obrazki znajdowały się obok siebie (za pomocą display: inline-block). Każdemu inputowi, łącznie z etykietą do niego przyporządkowaną, nadam tło w formie obrazka i odpowiednio je ustawię. Każdy input, łącznie z etykietą, wyświetlę jako element blokowy, by w pełni widać było tło. Każdemu ustawię też przezroczystą ramkę po to, by nie „skakał”, kiedy pojawi się czarna ramka po kliknięciu w niego.
Dla elementów listy wyłączyłam „kropki” ustawiając list-style: none, a widoczność samych inputów skorygowałam za pomocą dislay: none.
Efekt – jak na załączonym wyżej obrazku (kodzie) z codepen 🙂
Author: Joanna
Piszę kody, które (zazwyczaj) działają. Tresuję Wordpressa, kodzę z Reactem, zgłębiam świat DevOps i klikam w konsoli Linuxa. Hobbystycznie optymalizuję kod, bo lenistwo to najczystsza forma produktywności. Staram się nie zwariować między bugiem a deadlinem.