JSFiddle - React, Tailwind, and code Playground
HTML
<link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/font-awesome/4.2.0/css/font-awesome.min.css">
<div id="wrapper">
<a id="toggle" href="javascript:void(0)"><span class="fa fa-bars"></span></a>
<nav id="nav">
<ul>
<li><a href="index">home</a></li>
<li><a href="what_we_do">what we do</a>
<ul class="sub-menu">
<li><a href="#">submenu item</a></li>
<li><a href="#">submenu item1</a></li>
</ul>
</li>
<li><a href="about">about us</a>
<ul class="sub-menu">
<li><a href="#">submenu item</a></li>
<li><a href="#">submenu item</a></li>
</ul>
</li>
</ul>
</nav>
</div>
CSS
body {
font-family: 'Open Sans', sans-serif;
}
a { outline:none; cursor:pointer; text-decoration: none; }
nav{
display:block;
}
/*** Navigation Menu :: Start***/
#nav {
margin: 30px 0 0;
float: left;
}
#nav ul li {
float: left;
text-transform: uppercase;
margin-left: 5px;
}
#nav ul li a {
font-size: 14px;
color: #2d2d2d;
padding: 8px 15px;
border-radius: 5px;
display: block;
}
#nav ul li a:hover,
#nav ul li.active a,
#nav ul li.quote a,
#nav ul li:hover a {
background: #EF3E36;
color: #fff;
}
a#toggle {
position: absolute;
top: 10px;
left: 0;
width: 40px;
height: 40px;
background: red;
text-align: center;
color: white;
display: none;
transition: all ease-out 0.3s;
}
a#toggle span {
position: relative;
top: 50%;
transform: translateY(-50%);
}
#nav {
text-align: center;
transition: all ease-out 0.3s;
}
#nav a { color: white; }
#nav ul {
margin: 0;
padding: 0;
background-color: rgba(22,160,133, 0.8);
}
#nav ul li {
display: inline-block;
position: relative;
padding-bottom: 10px;
}
#nav ul li a {
display: block;
padding: 10px;
}
#nav ul li a span {
margin-left: 15px;
transition: all ease-out 0.3s;
-webkit-transition: all ease-out 0.1s;
display: none;
}
#nav ul li ul {
display: none;
position: absolute;
top: 38px;
width: 215px;
text-align: left;
}
#nav ul li ul li { display: block; }
#nav ul li ul li a { display: block; }
#nav ul li:hover a span { transform: rotateZ(90deg); }
#nav ul li:hover ul { display: block; }
#nav ul li ul.sub-menu {
position: absolute;
background: #fff;
border-radius: 5px;
padding: 5px;
box-shadow: 0px 0px 3px rgba(0,0,0,0.3);
display: none;
z-index: 999999;
top: 100%;
}
#nav ul li ul:before {
border-bottom: 10px solid rgba(0, 0, 0, 0.2);
border-left: 11px solid rgba(0, 0, 0, 0);
border-right: 11px solid rgba(0, 0, 0, 0);
content: "";
display: inline-block;
position: absolute;
left: 23px;
top: -10px;
}
#nav ul li ul:after...
JavaScript
var ico = $('<span class="fa fa-caret-right"></span>');
$('nav#nav li:has(ul)').append(ico);
$('span.fa-caret-right').on('click',function(){
$('li').removeClass('open');
$(this).closest('li').toggleClass('open');
});
$('a#toggle').on('click',function(e){
$('html').toggleClass('open-menu');
return false;
});
$('div#overlay').on('click',function(){
$('html').removeClass('open-menu');
})