html — Выпадающие меню по клику (без JS)
Здравствуйте,
Мне нужно сделать выпадающие меню по клику использую только HTML/CSS. В принципе, я его создал, но есть проблема в том что я не использую id, а без него не получилось.
Вопрос: Как сделать такой вариант меню без использования id?
Спасибо!
Код HTML:
<nav> <label for="checkbox"><img src="http://placehold.it/59x59" alt="Icon of menu"></label> <input type="checkbox"> <ul> <li><a href="#">Страница</a></li> <li><a href="#">Страница</a></li> <li><a href="#">Страница</a></li> </ul> </nav>
- html
- css
- меню
label {cursor: pointer;} ul {list-style: none;} . list {display: none;} .checkbox {display: none;} .checkbox:checked ~ .list { display: block; }
<nav> <label><img src="http://placehold.it/59x59" alt="Icon of menu"> <input type="checkbox"> <ul> <li><a href="#">Страница</a></li> <li><a href="#">Страница</a></li> <li><a href="#">Страница</a></li> </ul> </label> </nav>
не самий лутший вариант но я думаю подойдет
Родственные селекторы по своему поведению похожи на соседние селекторы (запись вида E + F), но в отличие от них стилевые правила применяются ко всем близлежащим элементам. К примеру, для селектора h2~p стиль будет применяться ко всем элементам
, располагающихся после заголовка . При этом и
должны иметь общего родителя, так что если
вставить внутрь , то стили применяться уже не будут.
2Зарегистрируйтесь или войдите
Регистрация через Google Регистрация через Facebook Регистрация через почтуОтправить без регистрации
ПочтаНеобходима, но никому не показывается
Отправить без регистрации
ПочтаНеобходима, но никому не показывается
By clicking “Отправить ответ”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.
Как заменить меню выпадающее при наведении на выпадающее при клике? – QA PR-CY
- Сообщество
- Как заменить меню выпадающее при наведении на выпадающее при клике?
Ответы на пост (14) Написать ответ
Исправлю за 1000р. )
Мне кажется дороговато
А мне кажется, у Вас на сайте огромная куча косяков, в том числе и по верстке
Перепишите в main.css, следующий стиль, который начинается в строке 286:
#site-navigation ul ul {
background: #fd9e00;
box-shadow: none;
top: 1.4em;
padding: 20px;
padding-left: 10px;
padding-top: 10px;
margin-top: 19px;
}
И Вы увидите, как на вторых уровнях выпадающее меню не перекрывает главное уровень верхнего меню)
Да это ерунда. Лучше подскажите, как сделать меню выпадающим по клику 🙂
Я такого ни разу не делал, надо ковырять, а работы и без этого огромная куча)
Жаль, ну ладно, может еще кто-нибудь отзовется.
Да и не получится, так как по клику- будет переходит по ссылке первого уровня меню, сразу же)
ну я загуглил несколько решений, там вроде все как надо отображается, но попробовал на свой сайт прикрутить — не получилось
Вопрос- зачем Вам это?)
выпадающее меню получилось слишком объёмным, хочется попробовать, с вариантом открывающимся по клику
Не получится- объясняю почему и даже не пытайтесь пробовать- только время зря потеряете) У вас в появляется выпадающее меню при наведение на элемент списка- li. Но в этом самом li находится ссылка, которая занимает всю площадь родительского li. Соответственно при клике на li, Вы будете автоматом кликать по ссылке и браузер перейдет по ссылке, Вы даже не успеете просмотреть толком меню.
Не будет так работать. Но, подскажу- после ссылки в li можно поставить знак плюсика или еще чего- при клике на плюсик- открывается выпадающее меню, при клике на ссылку, которую надо выделить, чтобы посетитель понимал, что это отдельный элемент- браузер переходит на страницу. НО- все будут путаться, так как пользователи привыкли видеть на всех сайтах одно и то же- навел на меню, увидел подменю, а это уже плохое юзабилити и большое кол-во отказов. Решать Вам, конечно же) Но не советую так делать и городить огороды- исправьте верстку, лучше)
да это исправлю, попозже. Сейчас надо подумать, как лучше переделать меню.
Думайте) По клику, сделать можно, но это не целесообразно, не так уж и мало работы и у нормального программиста стоит даже не 1000)
Похожие посты
- Как сделать что бы меню выделялся? (dle 10. 1)
2 - Выпадающее меню на сайте. Как провести анализ кликов?
5 - Как такое сделать на сайте wordpress?
3 - При живом поиске не выпадает список товаров opencart 1.5.
3 - Сделать выпадающее вертикальное меню.
1
Анализ сайта
Поможем улучшить ваш сайт.
Создание интерактивного выпадающего меню с помощью HTML и CSS
Задавать вопрос
спросил
Изменено 1 год, 4 месяца назад
Просмотрено 2к раз
В настоящее время я работаю над проектом, используя только HTML и CSS. Я хочу, чтобы кнопка меню отображала выпадающие элементы только при нажатии и имела кнопку «x», которая закрывала их при нажатии. Я могу сделать раскрывающееся меню при наведении, но мне не повезло с ним при нажатии без JavaScript.
Кто-нибудь знает, как мне это сделать, используя только HTML и CSS? Вот HTML и CSS, которые у меня есть на данный момент:
.header-menu { цвет фона: #fff; семейство шрифтов: "Noto Sans", без засечек; размер шрифта: 18 пикселей; } .header-элементы меню { дисплей: нет; z-индекс: 1; максимальная ширина: 100%; overflow-wrap: break-word; вес шрифта: 900; } .а { цвет: #000; отступ: 10 пикселей; текстовое оформление: нет; } .поиск { дисплей: нет; } .search-значок { дисплей: нет; } .header-menu-items час { цвет: #d0d0d0; цвет фона: #d0d0d0; высота: 1 пиксель; граница: нет; } .header-меню-кнопка { выравнивание текста: по левому краю; цвет фона: #ff3b3b; цвет: #fff; размер шрифта: 20px; вес шрифта: 600; отступ: 10px 0; граница: нет; курсор: указатель; ширина: 100%; нижняя граница: 10px; отступ слева: 10px; } .header-menu: hover .header-menu-items { дисплей: блок; }
дел>
- html
- css
- раскрывающееся меню
- клик
Прежде всего это должен быть class
, а не className
.
То, что вы хотите сделать, может быть достигнуто с помощью флажка
и селектора родственного элемента ~
.
.header-меню { цвет фона: #fff; семейство шрифтов: "Noto Sans", без засечек; размер шрифта: 18 пикселей; } . header-элементы меню { дисплей: нет; z-индекс: 1; максимальная ширина: 100%; overflow-wrap: break-word; вес шрифта: 900; } .а { цвет: #000; отступ: 10 пикселей; текстовое оформление: нет; } .поиск { дисплей: нет; } .search-значок { дисплей: нет; } .header-menu-items час { цвет: #d0d0d0; цвет фона: #d0d0d0; высота: 1 пиксель; граница: нет; } .header-меню-кнопка { выравнивание текста: по левому краю; цвет фона: #ff3b3b; цвет: #fff; размер шрифта: 20px; вес шрифта: 600; отступ: 10px 0; граница: нет; курсор: указатель; ширина: 100%; нижняя граница: 10px; отступ слева: 10px; дисплей: блок; } #переключаемое меню { дисплей: нет; } #toggle-menu:checked ~ .header-menu-items { дисплей: блок; } #toggle-menu ~ ярлык .hide { дисплей: нет; } #toggle-menu:checked ~ label .show { дисплей: нет; } #toggle-menu:checked ~ label .hide { дисплей: встроенный; }
<дел> <дел> <дел> <а href=""> Рубашки <ч /> <а href=""> Брюки <ч /> <а href=""> Обувь <ч /> <а href=""> футболки <ч /> <а href=""> Аксессуары <ч />