1. Tworzymy kontener
2. Wrzucamy do środka checkbox z etykietą
3. Ustawiamy kontener jako relatywny
div
{
position : relative;
}
4. Ukrywamy checkbox
input
{
visibility : hidden;
}
5. Nad nim generujemy nowy element z szarym tłem
label:before
{
background-color : grey;
content : "";
height : 16px;
left : 0;
position : absolute;
width : 16px;
}
6. Z kolei nad nim następny, nie co mniejszy
label:after
{
content : "";
height : 12px;
left : 2px;
position : absolute;
top : 2px;
width : 12px;
}
7. Na końcu, kiedy element z tej samej gałęzi co label jest zaznaczony, to poprzedzający go pseudo-element zmienia kolor
:checked ~ label:after
{
background-color : black;
}
Dla poprawnego wyświetlenia w starszych przeglądarkach polecam IE7.js.Zobacz efekt na jsFiddle.

Brak komentarzy:
Prześlij komentarz