0

每当我将鼠标悬停在菜单项上时,它都会打开悬停背景+打开下拉菜单。但是每当我悬停下拉菜单时,背景就会消失?

示例以及它应该如何看起来像这样

查看实时预览

此外,正如您所见,盒子阴影越过它。

代码:我的菜单 html:

       <div class="secondheader">

      <div class="container">

               <div class="span12">

                          <ul class="nav6">

                          <li><a href="#">Home</a></li>

                           <li class="dropdown1"><a href="#">Categories</a>
                <ul>
                    <li class="substyle"><a href="#">Buy</a></li>
                    <li class="substyle"><a href="#">Sell</a></li>
                    <li class="substyle"><a href="#">Forums</a></li>
                    <li class="substyle"><a href="#">Contact</a></li>
                    <li class="substyle"><a href="#">item 1</a></li>
                    <li class="substyle"><a href="#">Forums</a></li>
                    <li class="substyle"><a href="#">Contact</a></li>
                    <li class="substyle"><a href="#">item 1</a></li>
                </ul>
            </li>

                          <li><a href="#">Buy</a></li>

                          <li><a href="#">Sell</a></li>

                          <li><a href="#">Forums</a></li>

                          <li><a href="#">Contact</a></li>

                          <li><a href="#">item 1</a></li>

                          <li><a href="#">Forums</a></li>

                          <li><a href="#">Contact</a></li>

                          <li><a href="#">item 1</a></li>

                          </ul>

                          </div>

               </div>

       </div>

</div>    

我的 CSS 菜单:

.nav6  {
list-style: none;
font-family: 'Dosis', sans-serif;
float: left
font-size: 20px;
margin-top: 13px;
margin-left: -35px;
}
.nav6>li>ul{
display:none;
position:absolute;
background:white;
overflow:hidden;
width: 150px;
background: #fbf2d3;
margin-top: 20px;
margin-left: -3px;
-webkit-box-shadow:  0px 1px 5px 0px #dadada;
box-shadow:  0px 1px 5px 0px #dadada;       
}
.nav6>li:hover>ul {
display:block;
}
.nav6 >li {
display: inline;
margin: 0px;
font-size: 18px;
font-family: 'Dosis', sans-serif;
float: left;
margin-top: 10px;
}
.substyle {
padding: 10px;
}
.substyle:hover {
background: #f54922;
padding: 10px;
-webkit-border-radius: 6px;
border-radius: 6px;
color: #fff;
}
.subsyle a:hover {
color: #fff;
}
.nav6>li>a {
padding-top: 20px;

padding-bottom: 20px;

padding-left: 20px;

padding-right: 20px;

}
.nav6 a{color: #7D7253;}

.nav6 a:hover {
color: #fff;

text-decoration: none;
}
.nav6 > li > a:hover {
background-image: url("../img/hoverbg.png");    
}    

问题: > 选择器究竟做了什么?你能用一个简单的例子解释一下吗?非常感谢!

4

3 回答 3

1

当您悬停在整个 li 上时,您需要添加一个显示悬停图像的类,而不仅仅是子 li。尝试将您的最后一个样式更改为:

.nav6 > li > a:hover, .nav6 > li:hover > a {
    background-image: url("../img/hoverbg.png");    
}    

此外, > 选择器专门表示父级的“直接子级”。所以如果你有这个:

<div>
    <p><span></span></p>
    <span></span>
</div>

然后这将适用于所有跨度:

div span {}

这将仅适用于第二个跨度:

div > span {}

其中任何一个都将仅适用于第一个跨度:

div p span {}
div > p > span {}

在最后一种情况下,您不会使用 > - 仅当您特别需要仅针对直接子级时才使用它。

于 2012-08-20T05:25:29.220 回答
0

w3schools了解选择器的整体知识,如果有兴趣认真学习,你可以去 saylor进行免费教育。

FYI 认为是>So 中的含义,.nav6>li 表示“在”nav6 类中的列表

于 2012-08-20T00:28:15.457 回答
0

您只需在此类中进行更改.nav6 > li > a:hover {}

并写入这种格式.nav6 > li:hover a {}

这将工作正常............

于 2012-08-20T06:14:11.737 回答