Чекбоксы и радиокнопки (кастомный вариант)
Чекбоксы
HTML
<div class="checkbox">
<input class="checkbox-input" type="checkbox" id="checkbox-1" value="checkbox-one">
<label class="checkbox-label" for="checkbox-1">
Вариант 1 (чекбокс)
</label>
</div>
<div class="checkbox">
<input class="checkbox-input" type="checkbox" id="checkbox-2" value="checkbox-two">
<label class="checkbox-label" for="checkbox-2">
Вариант 2 (чекбокс)
</label>
</div>
<div class="checkbox">
<input class="checkbox-input" type="checkbox" id="checkbox-3" value="checkbox-three">
<label class="checkbox-label" for="checkbox-3">
Вариант 3 (чекбокс)
</label>
</div>
CSS
.checkbox {
margin-bottom: 14px;
width: fit-content;
display: flex;
justify-content: center;
align-items: center;
}
.checkbox:last-child {
margin-bottom: 0;
}
.checkbox-label {
cursor: pointer;
padding-left: 10px;
}
.checkbox-input {
cursor: pointer;
appearance: none;
position: relative;
width: 20px;
height: 20px;
background-color: #fff;
border: 1px solid #dcdcdc;
transition: 300ms;
}
.checkbox-input::after {
content: "";
position: absolute;
width: 15px;
height: 15px;
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='15' height='15' viewBox='0 -960 960 960' stroke='%23FFFFFF' stroke-width='30' fill='%23FFFFFF'%3E%3Cpath d='M382-240 154-468l57-57 171 171 367-367 57 57-424 424Z'/%3E%3C/svg%3E");
background-repeat: no-repeat;
transition: 300ms;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
opacity: 0;
}
.checkbox-input:checked {
background-color: #2e4a82;
border-color: #2e4a82;
}
.checkbox-input:checked::after {
opacity: 1;
}
Радио кнопки
HTML
<div class="radio">
<input class="radio-input" type="radio" id="radio-1" name="radio" value="radio-one">
<label class="radio-label" for="radio-1">
Вариант 1 (радиокнопка)
</label>
</div>
<div class="radio">
<input class="radio-input" type="radio" id="radio-2" name="radio" value="radio-two">
<label class="radio-label" for="radio-2">
Вариант 2 (радиокнопка)
</label>
</div>
<div class="radio">
<input class="radio-input" type="radio" id="radio-3" name="radio" value="radio-three">
<label class="radio-label" for="radio-3">
Вариант 3 (радиокнопка)
</label>
</div>
CSS
.radio {
margin-bottom: 14px;
width: fit-content;
display: flex;
justify-content: center;
align-items: center;
}
.radio:last-child {
margin-bottom: 0;
}
.radio-label {
cursor: pointer;
padding-left: 10px;
}
.radio-input {
cursor: pointer;
appearance: none;
position: relative;
width: 20px;
height: 20px;
background-color: #fff;
border: 1px solid #dcdcdc;
transition: 300ms;
border-radius: 50%;
}
.radio-input::after {
content: "";
position: absolute;
width: 15px;
height: 15px;
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='15' height='15' viewBox='0 -960 960 960' stroke='%23FFFFFF' stroke-width='30' fill='%23FFFFFF'%3E%3Cpath d='M382-240 154-468l57-57 171 171 367-367 57 57-424 424Z'/%3E%3C/svg%3E");
background-repeat: no-repeat;
transition: 300ms;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
opacity: 0;
}
.radio-input:checked {
background-color: #2e4a82;
border-color: #2e4a82;
}
.radio-input:checked::after {
opacity: 1;
}
Как сделать кастомные checkbox и radio button на HTML и CSS
Готовые сниппеты кода для чекбоксов и радиокнопок на чистом HTML, CSS. Адаптивные и легко встраиваемые решения для веб-разработчиков и верстальщиков. Подходят для создания форм обратной связи, квизов, подтверждения политик конфиденциальности.
Особенности:
- Адаптация под разную ширину экранов
- Простой, читаемый и легковесный код
- Код подходит для доработки и модификации под ваши задачи
- Совместим со всеми современными браузерами