I am trying to make the sub-menu with class = "category-nav" only valid for the "color" option (so it should not exist or be displayed for any of the other options).
The display: none works but when I try to do display block using combined sibling selectors to specify displaying submenu only for the option "color" it does not work. (.add-nav #color ~ .category-nav {display:block}). What am I doing wrong? Is there another way to do this with css? I would prefer not to use JavaScript for this as the page is already JavaScript heavy.
<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>
Here's the 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;
}
Here is the code in JS Fiddle