: фокус не работает в выпадающем списке в некоторых браузерах - PullRequest
0 голосов
/ 07 октября 2018

Я пытаюсь создать мобильное вертикальное раскрывающееся меню, но у меня возникает проблема с отображением элементов подменю с помощью :focus для обоих вариантов.

Я нашел обходной путь с помощью:focus для подменю и :focus-within для его элементов.

Это решение работает и отображает элементы подменю только для Google Chrome, в то время как другие браузеры, такие как Samsung, Интернет и UC, не отображают ничего, кроме:focus подменю.

Я нашел другое решение, используя :hover для обоих, и оно работает почти для всех браузеров.

У меня есть два вопроса:

  • Почему он работал только с Chrome?
  • Как использовать :focus как для подменю, так и для его элементов?

Используемый CSS:

.main-nav a {
	color:black;
	display: block;
	padding: 10px 3px 10px 3px;
    font-size: 20px;
    text-align: center;
    font-family: 'hayah';
    border-radius: 25px;
    transition: border-radius 0.2s ease-in;

}
.main-nav a:hover {
    background:#D7D7D7;
    border-radius:25px 25px 0 0; 
    -webkit-transition: border-radius 0.1s ease-in;
    -moz-transition: border-radius 0.1s ease-in;
    -o-transition: border-radius 0.1s ease-in;
    transition: border-radius 0.1s ease-in;  
    display: block;
    }
    
.main-nav-ul ul { 
    -webkit-transition: all 0.3s ease-in-out;
    -moz-transition: all 0.3s ease-in-out;
    -o-transition: all 0.3s ease-in-out;
    transition: all 0.3s ease-in-out;
    opacity: 0; 
    max-height: 0;
    overflow: hidden; 
    background-color: #D9D9D9;
    color: black;
    margin-bottom: 10px;
    margin-top: 5px;
    border-radius: 0 0 25px 25px;
    font-size: 12px;
    
    }
    
    
.main-nav-ul li:hover ul {  
    opacity: 1 !important;
    max-height: 400px !important;
    color: black;
    background-color: #E2E2E2;
    display: block;
    
    }

1 Ответ

0 голосов
/ 07 октября 2018

Трудно понять, какой ответ лучше всего подойдет для этой ситуации, не видя, как вы реализовали свой HTML.:focus-within не поддерживается хорошо: https://caniuse.com/#search=focus-within. Не видя ничего другого, я думаю, возможно, вы бы использовали JS для добавления и удаления :hover / :focus как этот ответ: Могу ли я отключить CSS: эффект зависания через JavaScript? .Таким образом, когда вы не отображаете подпункты, вы можете не использовать их эффекты при наведении.

...