
Помните первую статью про стилизацию чекбоксов? Там мы использовали спрайт для бекграунда, чтобы застилить чекбоксы.
В данной статье я предлагаю один из методов стилизации чекбоксов как в операционной системе iOS. Без JavaScript. Только на CSS.
Не будем долго мусолить. Вот простенькая разметка:
1 2 |
<input id="checkbox1" type="checkbox"> <label for="checkbox1">Зачекать!</label> |
А вот магия CSS:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 |
/* прячем стандартный чекбокс */ input[type="checkbox"] { display: none; } /* стили для метки */ input[type="checkbox"] + label { cursor: pointer; padding-left: 50px; position: relative; font-family: tahoma, sans-serif, arial; line-height: 40px; } /* стили для поля с бегунком*/ input[type="checkbox"] + label::before { content: ""; display: inline-block; position: absolute; top: 0; left: 0; vertical-align: middle; padding: 0; height: 24px; width: 36px; margin: 0 5px 0 0; border: 1px solid #dadada; border-radius: 12px; background: #dddddd; } /* стили для бегунка*/ input[type="checkbox"] + label::after { content: ""; display: block; position: absolute; top: 1px; left: 1px; width: 22px; height: 22px; border-radius: 22px; background: #fff; border: 1px solid #dadada; box-shadow: 0 3px 3px rgba(140, 140, 140, .1); } /* плавность )) */ input[type="checkbox"] + label::before, input[type="checkbox"] + label::after { -webkit-transition: all .2s ease-out; transition: all .2s ease-out; } /* чекнутое состояние )) */ input[type="checkbox"]:checked + label::before { background: #6edc5f; border-color: #6dd75e; } input[type="checkbox"]:checked + label::after { left: 13px; } |
Результат тут. Прелесть? Пользуйтесь на здоровье!
Сказать что это круто — ничего не сказать!