简体   繁体   English

将鼠标悬停在子元素CSS上时,保持父对象处于活动状态

[英]Keep parent active when hover on the child element CSS

I'm trying to keep parent element active, when hover on it's child element. 悬停在子元素上时,我试图保持父元素处于活动状态。 This is my code. 这是我的代码。

<nav class="desktop-menu">
   <ul class="navbar-nav">
    <li><a href="#">About</a></li>
    <li><a title="Business Lines" href="#">Business Lines</a>    
       <ul role="menu" class=" dropdown-menu sub-nav">
         <li><a title="Energy" href="#">Energy</a></li>
       </ul>
    </li>    
   </u>
</nav>

.desktop-menu .navbar-nav>li>a:hover {
    color: #fff;
    background: #67686b;
}
.desktop-menu .dropdown-menu {
    min-width: 220px;
    position: absolute;
    top: 100%;
    border: none;
    background: #67686b;
    color: #fff;
    box-shadow: none;
}
.desktop-menu .dropdown-menu li a:hover {
    color: #FBB914;
}
//Css to keep parent active
.desktop-menu .dropdown-menu:hover .desktop-menu .navbar-nav>li>a{
    color: #fff;
    background: #67686b;
}

Can anyone help me how can i achieve this? 谁能帮我实现这个目标? Thanks is advance. 感谢是前进。

I would suggest to match the hover action to the "li" parent element instead of the "a" tag, in that way you can also match the children, just like the example 我建议将悬停动作匹配到“ li”父元素而不是“ a”标签,这样,您也可以匹配子元素,就像示例

 .desktop-menu .navbar-nav>li:hover >a{ color: #fff; background: #67686b; } .desktop-menu .dropdown-menu { min-width: 220px; border: none; box-shadow: none; } .desktop-menu .dropdown-menu li a:hover { color: #FBB914; } //Css to keep parent active .desktop-menu .navbar-nav>li:hover .desktop-menu .navbar-nav>li>a{ color: #fff; background: #67686b; } 
 <nav class="desktop-menu"> <ul class="navbar-nav"> <li><a href="#">About</a></li> <li><a title="Business Lines" href="#">Business Lines</a> <ul role="menu" class=" dropdown-menu sub-nav"> <li><a title="Energy" href="#">Energy</a></li> </ul> </li> </u> </nav> 

As your .dropdown-menu is a child of the li you're hovering, 由于您的.dropdown-menu是您所徘徊的li的孩子,
there is no need for your last lines of CSS code. 您不需要最后几行CSS代码。

Here is a working snippet of what I think you try to achieve: 这是我认为您要实现的目标的工作片段:

 .desktop-menu .navbar-nav>li>a:hover { color: #fff; background: #67686b; } .desktop-menu .dropdown-menu { display: none; /* Hidden by default */ min-width: 220px; /* removed below position; absolute top: 100%; */ border: none; background: #67686b; color: #fff; box-shadow: none; } .desktop-menu li:hover .dropdown-menu { display: block; /* Appear when hovering */ } .desktop-menu .dropdown-menu li a:hover { color: #FBB914; } /* You don't need this code .desktop-menu .dropdown-menu:hover .desktop-menu .navbar-nav>li>a { color: #fff; background: #67686b; }*/ 
 <nav class="desktop-menu"> <ul class="navbar-nav"> <li><a href="#">About</a></li> <li><a title="Business Lines" href="#">Business Lines</a> <ul role="menu" class="dropdown-menu sub-nav"> <li><a title="Energy" href="#">Energy</a></li> </ul> </li> </ul> </nav> 

Hope it helps. 希望能帮助到你。

Just add some CSS as given below. 只需添加一些CSS,如下所示。 Hope this will help you. 希望这会帮助你。

 .desktop-menu .navbar-nav>li>a:hover { color: #fff; background: #67686b; } .desktop-menu .dropdown-menu { min-width: 220px; position: absolute; top: 100%; border: none; background: #67686b; color: #fff; box-shadow: none; } .desktop-menu .dropdown-menu li a:hover { color: #FBB914; } //Css to keep parent active .desktop-menu .dropdown-menu:hover .desktop-menu .navbar-nav>li>a{ color: #fff; background: #67686b; } .navbar-nav li{ position: relative; } .navbar-nav li ul{ display:none; } .navbar-nav li:hover ul{ display:block; } .navbar-nav li:hover a{ color:#fff; background: #67686b; } 
 <nav class="desktop-menu"> <ul class="navbar-nav"> <li><a href="#">About</a></li> <li><a title="Business Lines" href="#">Business Lines</a> <ul role="menu" class=" dropdown-menu sub-nav"> <li><a title="Energy" href="#">Energy</a></li> </ul> </li> </ul> </nav> 

You can also check this https://jsfiddle.net/kdwcbpy9/ 您也可以检查此https://jsfiddle.net/kdwcbpy9/

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM