Spudley: причина, по которой фокус не работает как hover, заключается в том, что действие hover назначается ul или li, содержащему ссылку.Всплывающее меню - это дочерний элемент этого ul / li, поэтому вы все еще зависаете над элементом внутри ul / li.Фокус может быть размещен только на интерактивных объектах клавиатуры, таких как ссылки и поля формы.Это означает, что когда ссылка имеет фокус, вы можете показать свое меню с помощью селектора CSS3, упомянутого Квентином, но меню не является дочерним по отношению к тегу привязки, чтобы оно было дочерним, ваше подменю должно быть внутритег.Это, как вы можете себе представить, вызовет проблемы со ссылками внутри подменю.Попробуйте поместить свой курсор при наведении на элемент a вместо элемента, включающего символ a, и вы получите те же результаты, что и при использовании метода фокусировки.
Квентин: одна из причин, по которой я сейчас занимаюсь, - это сочетание адаптивного дизайна идоступность.У меня полностью развернуто меню в полноэкранном режиме, но когда вы уменьшаете экран, меню становится маленькой кнопкой на странице, которая расширяется при наведении / фокусировке для экономии места на экранах мобильных телефонов / телефонов.Я также пытаюсь избежать javascript и сделать его доступным с клавиатуры в соответствии с требованиями доступности.Я не думаю, что есть способ сделать это прямо сейчас по той причине, что вы перечислили.Поэтому мой запасной вариант - скрыть меню и показать с помощью JavaScript, а когда он не включен, всегда показывать меню.Менее дружественный для мобильных пользователей (с отключенным js), но они все равно могут получить доступ ко всему для требований доступности.