chevron-left chevron-right

Piotr Nalepa Blog webmasterski

[CSS][jQuery] Stylizacja dla elementów typu checkbox i radio

Ta wersja
Opublikowano
Autor
Kategorie
CSS, JavaScript
Uwagi
Napisz do mnie · Napisz na X

Ten wpis ma 17 lat. Od tego czasu przeglądarki i narzędzia mogły się zmienić, więc zanim użyjesz kodu, sprawdź go z aktualną dokumentacją.

W dzisiejszej poradzie poruszam temat własnych stylów dla elementów strony WWW, które często służą do zaznaczania różnych opcji w ankietach czy sondażach, mowa o checkboxach i radiobuttonach. Dzięki tej poradzie będziecie mogli zastosować efektowne style dla swoich stron WWW.

Zaczynamy od kodu HTML, który wygląda nastepująco:

Przykład 1HTML
<input id="boks" type="checkbox" class="checkbox">
<label id="etykietka" for="boks" class="etykieta">Mój własny checkbox</label>

Jak widać kod HTML nie jest ani trochę skomplikowany.

Teraz pora na style, dzięki którym nasza strona nabierze efektowności:

Przykład 2CSS
.checkbox {
	display: none;
}
.etykieta {
	background: url("img/tak.png") no-repeat;
	padding-left: 35px;
	padding-top: 3px;
	margin: 5px;
	height: 28px;
	width: 150px;
	display: block;
}
.etykieta:hover {
	text-decoration: underline;
}
.etykieta_wybrana {
	background: url("img/nie.png") no-repeat;
}

A na sam koniec zamieszczam kod w JavaScript, dzięki któremu tworzy się magia na stronie:

Przykład 3JavaScript
$(document).ready(function(){
	$(".checkbox").change(function(){
		if($(this).is(":checked")){
			$(this).next("label").addClass("etykieta_wybrana");
		}else{
			$(this).next("label").removeClass("etykieta_wybrana");
		}
	});
});

Jednak by ten efekt zadziałał należy w sekcji "head" strony wstawić odnośnik do biblioteki jQuery:

Przykład 4HTML
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>

To już wszystko. Demo z tego artykułu możecie zobaczyć tutaj.

O autorze

Staff Software Engineer

Piszę na tym blogu od 2009 roku, a strony i aplikacje webowe tworzę zawodowo od 14 lat. Obecnie w Bishop Fox prowadzę frontend platformy Cosmos, od samego początku projektu. Wcześniej pracowałem m.in. w OLX, KUDO, Auto1 i eZ Systems. Piszę tu o tym, czego nauczyłem się w praktyce: o JavaScripcie, TypeScripcie, Reakcie, CSS-ie i architekturze frontendu. Występowałem też jako prelegent na konferencjach w Polsce i Europie. Masz pytanie albo pomysł na wpis? Daj znać!