Можно ли изменить цвет центрального круга радиокнопки
Можно ли создать центральную окружность выбранного переключателя, по крайней мере, в браузерах webkit...?
Что у меня сейчас: ![enter image description here]()
Что я хочу: ![enter image description here]()
Я могу изменить цвет фона, тень и т.д. следующим образом
#searchPopup input[type="radio"]{
-webkit-appearance:none;
box-shadow: inset 1px 1px 1px #000000;
background:#fff;
}
#searchPopup input[type="radio"]:checked{
-webkit-appearance:radio;
box-shadow: none;
background:rgb(252,252,252);
}
Любые идеи..?
Ответы
Ответ 1
Вы можете имитировать радиокнопку, используя какой-либо трюк с округлой границей (для визуализации внешнего круга) и псевдоэлемент :before
(для визуализации внутреннего круга), который, к счастью, можно использовать в поле ввода типа radio
input[type='radio'] {
-webkit-appearance:none;
width:20px;
height:20px;
border:1px solid darkgray;
border-radius:50%;
outline:none;
box-shadow:0 0 5px 0px gray inset;
}
input[type='radio']:hover {
box-shadow:0 0 5px 0px orange inset;
}
input[type='radio']:before {
content:'';
display:block;
width:60%;
height:60%;
margin: 20% auto;
border-radius:50%;
}
input[type='radio']:checked:before {
background:green;
}
Рабочее демо.
Ответ 2
Вы можете связать радиокнопку с надписью, чем вы можете скрыть радиокнопку и ярлык стиля, как вам нравится. Пример.
div {
background-color: #444444;
display: flex-column;
display:webkit-flex-column;
}
input {
margin: 10px;
position: absolute;
left: 100px;
}
label {
box-sizing: border-box;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
margin: 10px;
display: block;
width: 30px;
height: 30px;
border-radius: 50%;
-webkit-border-radius: 50%;
background-color: #ffffff;
box-shadow: inset 1px 0 #000000;
}
#green {
border: 8px solid green;
}
#red {
border: 8px solid red;
}
input:checked + #green {
border: 8px solid #ffffff;
background-color:green !important;
}
input:checked + #red {
border: 8px solid #ffffff;
background-color: red !important;
}
Click a button on the left - radio button on the right will be checked.
<div>
<input id="greenInput" type="radio" name="someName">
<label id="green" for="greenInput"> </label>
<input id="redInput" type="radio" name="someName">
<label id="red" for="redInput"></label>
</div>
Ответ 3
Вы также можете применить фоновое изображение, когда установлен переключатель.
[type="radio"]:checked {
width: 16px;
height: 16px;
-webkit-appearance: none;
background-image: ...
}
Пример: http://jsfiddle.net/yZ6tM/