This is the menu that i'm using, it is pure CSS/HTML and makes a hamburger icon for phones:
HTML:
<header class="navigation">
<a href="" class="logo"><img border="0" alt="Logo" src="images/logo.png" width="33" height="36.4">Logo</a>
<input class="button" type="checkbox" id="button" />
<label class="icon" for="button"><span class="navicon"></span></label>
<ul class="menu">
<li><a href="#work">Tutorials</a></li>
<li><a href="#about">Creations</a></li>
<li><a href="#careers">About</a></li>
<li><a href="#contact">Contact</a></li>
</ul>
</header>
CSS:
.menu {
position:relative;
}
.navigation {
background-color: #fff;
box-shadow: 1px 1px 4px 0 rgba(0,0,0,.1);
position: fixed;
width: 100%;
}
.navigation ul {
margin: 0;
padding: 0;
list-style: none;
overflow: hidden;
background-color: #fff;
}
.navigation li a {
display: block;
padding: 20px 20px;
border-right: 1px solid #f4f4f4;
text-decoration: none;
color:#000000;
}
.navigation li a:hover,
.navigation .button:hover {
background-color: #f4f4f4;
}
.navigation .logo {
display: block;
float: left;
font-size: 2em;
padding: 10px 20px;
text-decoration: none;
color:#000000;
}
.navigation .menu {
clear: both;
max-height: 0;
transition: max-height .2s ease-out;
font-family: 'Open Sans', sans-serif;
text-transform:uppercase;
}
.navigation .icon {
cursor: pointer;
display: inline-block;
float: right;
padding: 28px 20px;
position: relative;
user-select: none;
}
.navigation .icon .navicon {
background: #333;
display: block;
height: 2px;
position: relative;
transition: background .2s ease-out;
width: 18px;
}
.navigation .icon .navicon:before,
.navigation .icon .navicon:after {
background: #333;
content: '';
display: block;
height: 100%;
position: absolute;
transition: all .2s ease-out;
width: 100%;
}
.navigation .icon .navicon:before {
top: 5px;
}
.navigation .icon .navicon:after {
top: -5px;
}
.navigation .button {
display: none;
}
.navigation .button:checked ~ .menu {
max-height: 240px;
}
.navigation .button:checked ~ .icon .navicon {
background: transparent;
}
.navigation .button:checked ~ .icon .navicon:before {
transform: rotate(-45deg);
}
.navigation .button:checked ~ .icon .navicon:after {
transform: rotate(45deg);
}
.navigation .button:checked ~ .icon:not(.steps) .navicon:before,
.navigation .button:checked ~ .icon:not(.steps) .navicon:after {
top: 0;
}
@media (min-width: 48em) {
.navigation li {
float: left;
}
.navigation li a {
padding: 20px 30px;
}
.navigation .menu {
clear: none;
float: right;
max-height: none;
}
.navigation .icon {
display: none;
}
}
jsfiddle: https://jsfiddle.net/96a2pudt/2/