Показать сообщение отдельно
  #2 (permalink)  
Старый 22.01.2019, 18:50
Аватар для Malleys
Профессор
Отправить личное сообщение для Malleys Посмотреть профиль Найти все сообщения от Malleys
 
Регистрация: 20.12.2009
Сообщений: 1,714

Заменил SPAN на A, и LI на LI > A дабы увеличить доступность! (У вас совершенно не фокусируемые разделы)

Сообщение от olgamir1997@gmail.com
Изначально все dropdown-menu скрыты через класс .d-none.
Это WET, а мне нравится DRY и он практичней. (Ну не буду же я добавлять каждый раз этот класс, ведь такое меню подразумевает так и так, что всё скрыто изначально)

Сообщение от olgamir1997@gmail.com
При повторном клике на этот же dropdown-item блок dropdown-menu должен закрыться.
А я считаю, что должен оставаться открытым. (И пользователи Windows любят делать двойные щелчки)

Вот так получилось...

<nav>
	<ul>
		<li>
			<a href="#">Dropdown menu item</a>
			<ul>
				<li><a href="#1">Dropdown item 1</a></li>
				<li><a href="#2">Dropdown item 2</a></li>
				<li><a href="#3">Dropdown item 3</a></li>
			</ul>
		</li>
		<li>
			<a href="#blog">Category</a>
			<ul>
				<li><a href="#1">Category 1</a></li>
				<li><a href="#2">Category 2</a></li>
				<li><a href="#3">Category 3</a></li>
			</ul>
		</li>
		<li>
			<a href="#about">About</a>
			<ul>
				<li><a href="#1">Bio</a></li>
				<li><a href="#2">Photos</a></li>
				<li><a href="#3">Social</a></li>
			</ul>
		</li>
	</ul>
</nav>

<style>

nav ul {
	display: flex;
	justify-content: center;
	list-style: none;
	padding: 0;
}

nav li {
	flex: 1;
	position: relative;
}

nav a {
	display: block;
	text-decoration: none;
	background: rebeccapurple;
	font-weight: bold;
	color: white;
	padding: 1em;
	text-align: center;
}

nav li li a {
	background: #e6d9f2;
	color: black;
	font-weight: 300;
}

nav a:focus {
	background: #ff5500;
}

nav a + ul {
	position: absolute;
	flex-flow: column;
	width: 100%;
}

/* механизм переключения видимости */
nav li ul {	display: none; }
	
nav li:focus-within ul { display: initial; }
	
nav li:focus ul { display: initial; }
	
nav a:focus {
	background: black;
	color: white
}

</style>

Последний раз редактировалось Malleys, 22.01.2019 в 19:01.
Ответить с цитированием