Нестандартный checkbox
Чтобы при клике по тексту выбирался чекбокс необходимо атрибут
for
у тегаlabel
задать соответствующемуid
чекбокса.
У Вадима Макеева вышло на редкость полезное видео про создание нестандартных чекбоксов с разъяснениями для самых маленьких
Результат
html
<label class="check option">
<input class="check__input" type="checkbox">
<span class="check__box"></span>
Первый
</label>
<label class="check option">
<input class="check__input" type="checkbox" checked="">
<span class="check__box"></span>
Второй
</label>
<label class="check option">
<input class="check__input" type="checkbox" disabled="">
<span class="check__box"></span>
Третий
</label>
<label class="check option">
<input class="check__input" type="checkbox" checked="" disabled="">
<span class="check__box"></span>
Четвёртый
</label>
css
/* Option */
.option {
display: block;
margin-bottom: 0.5em;
}
/* Check */
.check {
padding-left: 1.3em;
}
.check__input {
position: absolute;
width: 1px;
height: 1px;
overflow: hidden;
clip: rect(0 0 0 0);
}
.check__box {
position: absolute;
margin-top: 0.5em;
margin-left: -1.1em;
width: 0.7em;
height: 0.7em;
overflow: hidden;
border-radius: 0.05em;
background-color: white;
background-repeat: no-repeat;
background-position: 50% 50%;
box-shadow: 0 0 0 0.1em #4A90E2;
}
/* Checked */
.check__input:checked + .check__box {
background-color: #4A90E2;
background-image: url(https://cdn.glitch.com/d6162378-5823-4160-a555-3d9789bd2b92%2Fcheck.svg?1550563475518);
}
/* Focused */
.check__input:focus + .check__box {
box-shadow:
0 0 0 0.1em #4A90E2,
0 0 0 0.2em #7ED321;
}
/* Disabled */
.check__input:disabled + .check__box {
box-shadow: 0 0 0 0.1em #9B9B9B;
}
.check__input:checked:disabled + .check__box {
background-color: #9B9B9B;
}
После просмотра проверил известные дизайн системы. Альфабанк, mail.ru, контур, некий барс, яндекс.музыка, мегафон ЛК не использут предложенный appearance
для скрытия настоящего чекбокса. Обычно это display: none;
или opacity: 0;