我正在尝试创建一个子菜单的子菜单,但我无法弄清楚该怎么做。现在我有一个菜单和一个子菜单1正在工作,但我需要制作另一个仅出现的第一个子菜单1的子菜单当子菜单1中的“li”悬停时。
小提琴:https://jsfiddle.net/buprgb6g/
CSS:
#divMenu ul, li, li li {
margin: 0;
padding: 0;
z-index:2 !important;
}
#divMenu {
width: 199px;
height: auto;
}
#divMenu h3 {
color: #fff;
background-color: #25408f;
padding: 10px 2px;
text-align: center;
font-weight: bold;
text-transform: uppercase;
font-size: 12px;
font-family: Verdana, Geneva, sans-serif;
}
#divMenu ul {
line-height: 25px;
}
#divMenu li {
list-style: none;
position: relative;
background: #dedfe0;
}
#divMenu li li {
list-style: none;
position: relative;
background: #dedfe0;
left: 199px;
top: -27px;
}
#divMenu ul li a {
width: 189px;
height: auto;
display: block;
text-decoration: none;
text-align: left;
color: #25408f;
padding-left:5px;
padding-right:5px;
text-transform: uppercase;
border: 1px solid #eee;
font-size: 10px;
font-weight: bold;
font-family: Verdana, Geneva, sans-serif;
}
#divMenu ul ul {
position: absolute;
visibility: hidden;
top: 27px;
}
#divMenu ul li:hover ul {
visibility: visible;
}
#divMenu li:hover {
background-color: #25408f;
color: #fff;
}
#divMenu li:hover a {
color: #fff;
}
#divMenu ul li:hover ul li a {
color: #25408f !important;
width: 285px;
}
#divMenu ul li:hover ul li a:hover {
background-color: #25408f !important;
color: #fff !important;
}
#divMenu a:hover {
font-weight: bold;
}
HTML
<div id="divMenu">
<h3>TEST</h3>
<ul>
<li><a href="#">GROUP A</a>
<ul>
<li><a href="#">PRODUCT 1</a></li>
<li><a href="#">PRODUCT 2</a></li>
</ul>
</li>
<li><a href="#">GROUP B</a>
<ul>
<li><a href="#">PRODUCT 1</a></li>
<li><a href="#">PRODUCT 1</a></li>
</ul>
</li>
</ul>
</div>
这是我想要工作的HTML:
<div id="divMenu">
<h3>TEST</h3>
<ul>
<li><a href="#">GROUP A</a>
<ul>
<li><a href="#">PRODUCT 1</a>
<ul>
<li>PRODUCT 1 A</li>
<li>PRODUCT 1 B</li>
</ul>
</li>
<li><a href="#">PRODUCT 2</a>
<ul>
<li>PRODUCT 2 A</li>
<li>PRODUCT 2 B</li>
</ul>
</li>
</ul>
</li>
<li><a href="#">GROUP B</a>
<ul>
<li><a href="#">PRODUCT 1</a></li>
<li><a href="#">PRODUCT 1</a></li>
</ul>
</li>
</ul>
</div>
答案 0 :(得分:0)
当您指定选择器而未指定嵌套子项时,该样式也会级联到其他子元素中。
您需要使用&gt;指定嵌套子项运营商,这将解决它。
例如:
#divMenu ul li:hover ul {
应更改为:#divMenu ul li:hover > ul {
答案 1 :(得分:0)
删除宽度
#divMenu ul li:hover ul li a {
color: #25408f !important;
width: 285px; //Remove this width.
}
从
更改css#divMenu ul li:hover ul {
visibility: visible;
}
要
#divMenu ul li:hover > ul {
visibility: visible;
}
完成它会正常工作。