Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

150
Visualizações
How do I use CSS to keep a drop-down menu visible when one of its items is clicked?

Subject: CSS drop down menus

I want to handle click events with CSS such that when a sub-item within a drop down menu is clicked that the drop menu stays visible.

... AND when I click a sub-item in a different drop down menu, I want the original drop down menu to disappear.

I can do all this with javascript, but that creates other problems not related to this post.

HTML snippet

<ul id="menubar">                          <!-- #menubar + -->

    <li class="drop">
        text1
        <ul class="aMenu">   <!-- drop-menu  -->
            <li>
                text11
            </li>
            <li class="daddy">   <!-- .daddy = parent of sub-menu -->
                text12
                <!--
                    sub-menu = .daddy .aMenu
                    sub-menu item = .daddy .aMenu li
                -->
                <ul class="aMenu">   <!-- sub-menu  -->
                    <li>text121</li>
                    <li>text122</li>
                </ul>
            </li>   <!-- .daddy -->
        </ul>
    </li>   <!-- drop menu item "text1" -->

</ul>

existing CSS:

/*
    Show drop menu when over main menu and
    show 1st sub-menu when over sub-menu's parent
*/

#menubar li:hover .aMenu {
    left: auto;
}

/*
    Hide sub-sub-menu when hovering over
    its grandparent (li:hover) menu.
*/

#menubar li:hover .aMenu .aMenu {
    left: -99999px;
}

/*
    Show 1st sub-menu when hovering over
    its parent (li:hover) .aMenu ...
    
    ... but, still keep hidden all its deeper
        sub-sub menus from above.
*/

#menubar .aMenu li:hover > .aMenu {
    left: auto;
}

existing JS:

I do have this function called within <body onload="sfHover()">

function sfHoverJQ() {

    $(document).ready(function () {
        
        $("li").on({    
            mouseenter: function(evt) {
                $(this).addClass("sfhover");
            },
        
            mouseleave: function(evt) {
                $(this).removeClass("sfhover");
                $(this).removeClass("sfclick");
            },
        
            click: function(evt) {
                $(this).removeClass("sfhover");
                $(this).addClass("sfclick");
            }
        });

    });

}

So I do have the sfclick + sfhover classes available, but I just don't know how to put it into the CSS code.

about 4 years ago · Juan Pablo Isaza
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda