номер
В настоящее время вы используете псевдо-селектор CSS :hover
, который отображает дочернего элемента, когда родитель находится над ним. Есть псевдоселектор :active
, который срабатывает только если вы удерживаете кнопку мыши на элементе, но это явно не то, что вы хотите.
Чтобы меню появлялось при нажатии, вам понадобится JavaScript. Однако, если пользователь просматривает с отключенным Javascript, вы захотите вернуться к технике наведения CSS. Итак, начнем с некоторого базового HTML / CSS, подобного тому, что у вас есть:
HTML:
<ul id="menu">
<li>
Some Link
<ul>
<li>A</li>
<li>B</li>
</ul>
</li>
<li>
Some Link 2
<ul>
<li>1</li>
<li>2</li>
</ul>
</li>
</ul>
CSS:
#menu li ul {
display:none;
}
#menu li:hover ul {
display:block;
}
Затем в JavaScript переопределяет событие hover и скрывает дочерние элементы. Также прикрепите событие клика и покажите дочернему элементу следующее:
Javascript:
window.onload = function() {
var menu = document.getElementById("menu"), //get the menu
i = 0;
//get the <li>s
var parents = menu.children;
for(i=0;i<parents.length;i++) {
//override the hover event
parents[i].onmouseover = function() {
//hide the first child (which, in this specific case,
//is the <ul> that we're looking for)
//if you want to hide more children, you could
//loop through and hide them all, etc.
this.children[0].style.display = "none";
};
//on click,
parents[i].onclick = function() {
//show the first child if it's hidden
//hide if it's visible
var c = this.children[0];
c.style.display = c.style.display === "none" ? "block" : "none";
};
}
};
Вы можете увидеть пример здесь: http://jsbin.com/ifuvuw/2/edit
Обратите внимание:
Это не относится к вашим вложенным меню. Это простой пример. Вы можете взять основной принцип и применить его к вашему делу. Если у вас есть какие-либо вопросы о том, как это работает, пожалуйста, задавайте, но если у вас возникли проблемы с его применением, подумайте над тем, чтобы задать новый вопрос.
TL; DR: Вы не можете сделать это с помощью CSS, но вы можете сделать это с помощью Javascript
Плюсы : пожалуйста, настройте мой (возможно дерьмовый) JS и улучшите его
Noobs : пожалуйста, спросите, если вы не понимаете, как это работает