Содержание
Отключение предустановленных стилей Подводные камни Скрытие стандартных радио-кнопок
Отключение предустановленных стилей
appearance
<input type="radio" name="demo" value="1" id="radio-1" class="form-radio">
<label for="radio-1">Пункт 1</label>
<input type="radio" name="demo" value="2" id="radio-2" class="form-radio">
<label for="radio-2">Пункт 2</label>
CSS:
.form-radio {
appearance: none;
-webkit-appearance: none;
-moz-appearance: none;
/* Собственные стили */
}
/* Стили для выбранного элемента */
.form-radio:checked {
/* Собственные стили */
}
/* Стили при наведении */
.form-radio:hover {
/* Собственные стили */
}
appearance: none;
input type="radio"
Подводные камни
appearance: none;
Скрытие стандартных радио-кнопок
<label for="radio-1" class="form-radio-hidden">
<input type="radio" name="demo" value="1" id="radio-1">
<span class="radio"></span>
<span class="text">Пункт 1</span>
</label>
<label for="radio-2" class="form-radio-hidden">
<input type="radio" name="demo" value="2" id="radio-2">
<span class="radio"></span>
<span class="text">Пункт 2</span>
</label>
CSS:
.form-radio-hidden {
display: flex;
align-items: center;
}
.form-radio-hidden input {
position: absolute;
opacity: 0;
}
.form-radio-hidden .radio {
display: inline-block;
width: 20px;
height: 20px;
border-radius: 50%;
border: 1px solid #999;
background-color: #fff;
cursor: pointer;
transition: .5s all;
}
.form-radio-hidden:hover .radio {
background-color: #f9f9f9;
}
.form-radio-hidden input:checked + .radio {
background-color: #555;
}
.form-radio-hidden input + .radio + .text {
margin-left: 10px;
font-size: 14px;
color: #777;
}
span