Чекбокс используется для выбора двух состояний у одного параметра. Он может использоваться для выбора элементов списка, например, для выбора нескольких документов, или для активации уведомлений и выбора конкретных ситуаций, в которых их следует отправлять.
Однако флажок не приводит к автоматическому выполнению действия — обычно требуется нажатие кнопки подтверждения. Если вам нужен мгновенный эффект, то лучше использовать тумблер.
Зачастую браузерные стили чекбоксов не подходят для сайта, тогда на помощь приходят кастомные чекбоксы, которые можно написать на чистом CSS. В этой статье мы реализуем такой чекбокс:
📢 Подписывайтесь на наш Telegram-канал.
Там вы найдете анонсы обучающих статей и видео, готовый код для ваших проектов и увлекательные курсы. Ничего лишнего — только практика, вдохновение и развитие.
Разметка чекбокса
Комментарии даны в коде:
<div class="option">
<!-- Браузерный чекбокс -->
<input type="checkbox" name="option1" id="option1" class="default-checkbox" />
<!-- Кастомный чекбокс -->
<label for="option1" class="custom-checkbox"></label>
<!-- Текст чекбокса -->
<label for="option1" class="title">Option 1</label>
</div>
Стилизация чекбокса
Комментарии даны в коде:
.option {
display: flex;
align-items: center;
margin-bottom: 15px;
user-select: none; /* Запрещаем выделение при нажатии */
}
.option .default-checkbox {
display: none; /* Скрываем браузерный чекбокс */
}
/* Стили для поля кастомного чекбокса */
.option .custom-checkbox {
display: block;
width: 30px;
height: 30px;
background-color: #eee;
margin-right: 10px;
cursor: pointer;
position: relative;
}
/* Стили для синего квадрата внутри чекбокса */
.option .custom-checkbox::before {
display: none; /* По дефолту скрыаем его */
position: absolute;
content: "";
width: 18px;
height: 18px;
top: 50%;
left: 50%;
transform: translate(-50%, -50%); /* Размещаем по центру */
background-color: #0081f1;
}
/* При состоянии checked - показываем синий квадрат */
.option .default-checkbox:checked + .custom-checkbox::before {
display: block;
}
Получаем состояние чекбокса
Функция getOptionValue позволяет вернуть состояние чекбокса (true или false).
const option1 = document.querySelector("#option1");
option1.addEventListener("change", getOptionValue);
function getOptionValue(e) {
console.log(e.target.checked);
}
Комментарии
0