Как уже упоминал Фред, нет способа встроить радио кнопки в цвет, размер и т. Д. Но вы можете использовать псевдоэлементы CSS, чтобы установить самозванца для любой данной радиокнопки и стилизовать его. Касаясь того, что сказал JamieD, о том, как мы можем использовать псевдоэлемент: after, вы можете использовать и: before, и: after для достижения желаемого вида.
Преимущества этого подхода:
- Укажите стиль своей радио-кнопки, а также добавьте метку для контента.
- Измените цвет внешнего обода и / или отмеченный круг на любой понравившийся вам цвет.
- Придайте ему прозрачный вид с изменениями свойства цвета фона и / или необязательным использованием свойства opacity.
- Увеличьте размер радиокнопки.
- При необходимости добавляйте различные свойства тени, например, вставку тени CSS.
- Смешайте этот простой трюк CSS / HTML с различными Grid-системами, такими как Bootstrap 3.3.6, чтобы он визуально соответствовал остальным компонентам Bootstrap.
Объяснение короткой демонстрации ниже:
- Установить относительный линейный блок для каждой радиокнопки
- Скрыть родной смысл переключателя, нет способа напрямую его стилизовать.
- Стиль и выравнивание метки
- Перестройка содержимого CSS на псевдоэлементе: before для выполнения двух действий - стилизация внешнего края переключателя и установка элемента на первое место (слева от содержимого метки). Вы можете узнать основные шаги по псевдоэлементам здесь - http://www.w3schools.com/css/css_pseudo_elements.asp
- Если установлен переключатель, запросите метку для отображения содержимого CSS (выделенная точка в переключателе) впоследствии.
HTML
<div class="radio-item">
<input type="radio" id="ritema" name="ritem" value="ropt1">
<label for="ritema">Option 1</label>
</div>
<div class="radio-item">
<input type="radio" id="ritemb" name="ritem" value="ropt2">
<label for="ritemb">Option 2</label>
</div>
CSS
.radio-item {
display: inline-block;
position: relative;
padding: 0 6px;
margin: 10px 0 0;
}
.radio-item input[type='radio'] {
display: none;
}
.radio-item label {
color: #666;
font-weight: normal;
}
.radio-item label:before {
content: " ";
display: inline-block;
position: relative;
top: 5px;
margin: 0 5px 0 0;
width: 20px;
height: 20px;
border-radius: 11px;
border: 2px solid #004c97;
background-color: transparent;
}
.radio-item input[type=radio]:checked + label:after {
border-radius: 11px;
width: 12px;
height: 12px;
position: absolute;
top: 9px;
left: 10px;
content: " ";
display: block;
background: #004c97;
}
A короткая демонстрация , чтобы увидеть ее в действии
В заключение, JavaScript, изображения или батареи не требуются. Чистый CSS.