Как я могу сделать мои измененные переключатели с вкладками?
Я использовал немного CSS, чтобы создавать удобные для радио кнопки, скрывая input
с и используя label
элементы вместо. Код ниже, но я сделал jsFiddle для удобства.
Моя проблема заключается в том, что при использовании клавиатуры для навигации по форме возникает серьезная проблема с удобством использования: поля больше не являются вкладками. Я пытался добавить tabindex
атрибуты скрытого input
с labels
и к div
, Первые два вообще не работают, добавляя tabindex
в div работает (div выделен), но я вообще не могу взаимодействовать с элементами формы (например, с помощью клавиш со стрелками).
Можно ли это исправить только с помощью CSS/HTML? Я бы предпочел не возвращаться к javascript, но если нет другого пути, я думаю, мне придется.
<input type='text'>
<div class='radio-select'>
<input checked="checked" id="no" name="yes_no" value="False" type="radio">
<label for="no">
No
</label>
<input id="yes" name="yes_no" value="True" type="radio">
<label for="yes" >
Yes
</label>
</div>
<input type='text'>
<style>
.radio-select label{
background: #f00;
border:1px solid #ddd;
border-radius:10px;
padding:10px;
margin:5px 0;
max-width:200px;
clear:both;
display: block;
cursor:pointer;
}
.radio-select input[type='radio']{
display: none;
}
.radio-select input[type='radio']:checked + label{
background:#0f0 !important;
}
.radio-select input[type='radio']:checked + label:before{
content:"✔";
}
</style>
1 ответ
Если вы прячете input
s, установив их непрозрачность на 0, они по-прежнему будут иметь табуляцию:
.radio-select input[type='radio']{
opacity:0;
filter:alpha(opacity=0);
position:absolute
}