Это невозможно с чистым CSS. Вам потребуется javascript, чтобы изменить свойство checked
на переключателе на false, если оно уже отмечено при нажатии на него.
Пример Javascript:
var radios = document.querySelectorAll('input[type="radio"]');
for(i=0; i<radios.length; i++ ) {
radios[i].onmousedown = function() {
let checked = this.checked;
this.onclick = function() {
if (checked) {
this.checked = false;
}
}
}
}
Пример jQuery:
$('input[type="radio"]').on('mousedown', function() {
let checked = this.checked;
$(this).on('click', function() {
if (checked) {
this.checked = false;
}
})
})
Как работают переключатели, они изменяются только при нажатии, а не при включении, и к тому времени, когда срабатывает onclick, свойство checked
уже будет установлено в true. Поэтому, если у вас есть только слушатель onclick, checked
всегда будет истинным, и вы вообще не сможете активировать радио. Таким образом, прослушиватель mousedown необходим перед щелчком, чтобы увидеть, радио уже проверено, чтобы вы могли правильно снять его, когда срабатывает событие click.
Гораздо проще понять, когда вы видите, так что вот скрипка, показывающая, что я имею в виду.
http://jsfiddle.net/d6uLqy0c/4/