【发布时间】:2014-04-30 16:32:26
【问题描述】:
我正在尝试使带有 class= "category-nav" 的子菜单仅对 "color" 选项有效(因此对于任何其他选项,它都不应该存在或显示)。
显示:无,但是当我尝试使用组合的同级选择器来指定仅显示“颜色”选项的子菜单时,它不起作用。 (.add-nav #color ~ .category-nav {display:block})。我究竟做错了什么?有没有另一种方法可以用 css 做到这一点?我不希望为此使用 JavaScript,因为该页面已经是 JavaScript 繁重的。
<ul class="add-nav">
<li><a href="#">shape</a></li>
<li id = "color" class="active"><a href="#">color</a></li>
<li><a href="#">pattern</a></li>
<li><a href="#">size</a></li>
<li><a href="#">overall</a></li>
</ul>
<ul class="category-nav">
<li class="active"><a href="#">all</a></li>
<li><a href="#">Red</a></li>
<li><a href="#">Orange</a></li>
<li><a href="#">Yellow</a></li>
<li><a href="#">Green</a></li>
<li><a href="#">Blue</a></li>
<li><a href="#">Purple</a></li>
</ul>
这是css
.add-nav{
width:100%;
padding:0;
margin:10px 0 0px;
list-style:none;
border-bottom:1px solid #cecece;
display:table;
text-transform:uppercase;
font-size:10px;
line-height:14px;
}
.add-nav li{
text-align:center;
display:table-cell;
vertical-align:bottom;
}
.add-nav li a{
display:block;
padding:21px 5px 16px;
color:#636363;
}
.add-nav li a:hover,
.add-nav .active a{
font-weight:700;
text-decoration:none;
color:#272727;
background:#f2f2f2;
}
.category-nav{
padding:5px 13px 7px;
margin:0 0 0px;
list-style:none;
background:#f2f2f2;
width:100%;
font-size:10px;
font-variant:small-caps;
display:table;
box-sizing:border-box;
-moz-box-sizing:border-box;
-webkit-box-sizing:border-box;
}
.category-nav li{
text-align:center;
display:table-cell;
vertical-align:bottom;
}
.category-nav li a{color:#636363;}
.category-nav li a:hover{
text-decoration:none;
color:#ff6699;
}
\\.category-nav{
display:none;\\
}
.category-nav .active a{
color:#ff6699;
font-weight:700;
}
这是JS Fiddle中的代码
【问题讨论】:
-
如果你能改变你的 html 可能会更容易 - 所以子菜单在#color li...
-
@nevermind,看来我会遇到 John Alexander 的回答中描述的同样问题。