CSS Only Drop-Down Menu by Click
Discovered from an article on Ryan Collins' blog: http://www.ryancollins.me/?p=1041 & code was pulled from his demo: http://ryancollins.me/%7C/1041/demo.txt
by epinapala
HTML
<section class="app-documentation-mid-nav" w-bind="./index">
<div class="mid-menu">
<div class="wrapper">
<div class="content">
<ul>
<a href="#"><li>Lorem ipsum dolor</li></a>
<a href="#"><li>Consectetur adipisicing</li></a>
<a href="#"><li>Reprehenderit</li></a>
<a href="#"><li>Commodo consequat</li></a>
</ul>
</div>
<div class="parent">Drop Down Parent 1</div>
</div>
<div class="wrapper">
<div class="content">
<ul>
<a href="#"><li>Lorem ipsum dolor</li></a>
<a href="#"><li>Consectetur adipisicing</li></a>
<a href="#"><li>Reprehenderit</li></a>
<a href="#"><li>Commodo consequat</li></a>
</ul>
</div>
<div class="parent">Drop Down Parent 2</div>
</div>
</div>
</section>
CSS
@import "../../global-style/mixins.less";
.app-documentation-mid-nav {
.mid-menu {
.wrapper {
display: inline-block;
width: 180px;
margin: 0 10px 0 0;
height: 20px;
position: relative;
}
.parent {
height: 100%;
width: 100%;
display: block;
cursor: pointer;
line-height: 30px;
border-radius: 5px;
background: #F9F9F9;
border: 1px solid #AAA;
border-bottom: 1px solid #777;
color: #282D31;
font-weight: bold;
z-index: 2;
position: relative;
.vendor(transition, border-radius .1s linear);
.vendor(transition-delay, .8s);
text-align: center;
}
.parent:hover,
.content:hover~.parent {
background: #fff;
.vendor(transition-delay, 0s);
}
.content:hover~.parent {
border-bottom-left-radius: 0;
border-bottom-right-radius: 0;
z-index: 0;
}
.content {
position: absolute;
top: 0;
display: block;
z-index: 1;
height: 0;
width: 180px;
padding-top: 30px;
.vendor(transition, height .5s ease);
.vendor(transition-delay, .4s);
border: 1px solid #777;
border-radius: 5px;
box-shadow: 0 1px 2px rgba(0, 0, 0, .4);
}
.wrapper:active .content {
height: 123px;
z-index: 3;
.vendor(transition-delay, 0s);
}
.content:hover {
height: 123px;
z-index: 3;
.vendor(transition-delay, 0s);
}
.content ul {
background: #fff;
margin: 0;
padding: 0;
overflow: hidden;
height: 100%;
...