Я пытаюсь создать древовидный <select>
с помощью HTML и CSS.
Чтобы поддерживать доступность, я хотел бы избежать javascript, если это возможно.
Я также хотел бы избежать использования
вместо заполнения, так как это предотвращает нажатие буквенных клавиш для перехода к элементам.
Что я до сих пор знаю:
<select>
<optgroup label="fluffy" style="padding-left: 10px;"></optgroup>
<optgroup label="kitties" style="padding-left: 20px;"></optgroup>
<option value="1" style="padding-left: 30px;">Fluffykins</option>
<option value="2" style="padding-left: 30px;">Mr Pooky</option>
<optgroup label="puppies" style="padding-left: 20px;"></optgroup>
<option value="3" style="padding-left: 30px;">Doggins</option>
<optgroup label="not fluffy" style="padding-left: 10px;"></optgroup>
<optgroup label="snakes" style="padding-left: 20px;"></optgroup>
<option value="4" style="padding-left: 30px;">Fingers</option>
<optgroup label="crabs" style="padding-left: 20px;"></optgroup>
<option value="5" style="padding-left: 30px;">Lucky (AKA Citizen Snips)</option>
</select>
Это отлично работает в Firefox, но IE игнорирует дополнение, предоставляя его как плоский список (довольно сложно использовать), и Chrome не отображает <optgroup>
s, которые технически недействительны, поскольку <optgroup>
должен содержать по крайней мере на <option>
.
К сожалению, <optgroup>
не может быть вложен.