JSFiddle - React, Tailwind, and code Playground
HTML
<div class="top-menu">
<ul id="nav">
<li><a class="first-top" href="#">HOME</a>
</li>
<li><a href="#">DIRECTORY</a>
</li>
<li><a href="#">OFFICES</a>
<ul class="child">
<li><a href="#">MIAMI</a>
</li>
<li><a href="#">FORT LAUD</a>
</li>
<li><a href="#">TAMPA</a>
</li>
<li><a href="#">TALLAHASSEE</a>
</li>
</ul>
</li>
<li><a href="#">MENUS</a>
<ul class="child">
<li><a href="#">MIAMI</a>
</li>
<li><a href="#">FORT LAUD</a>
</li>
<li><a href="#">TAMPA</a>
</li>
<li><a href="#">TALLAHASSEE</a>
</li>
</ul>
</li>
<li><a href="#">CONFERENCE</a>
<ul class="child">
<li><a href="#">LOG IN</a>
</li>
<li><a href="#">TUTORIALS</a>
</li>
</ul>
</li>
<li><a href="#">FLOORS</a>
<ul class="child">
<li><a href="#">MIAMI</a>
<ul>
<li><a href="#">1ST FLOOR</a>
</li>
<li><a href="#">2ND FLOOR</a>
</li>
<li><a href="#">3RD FLOOR</a>
</li>
<li><a href="#">20TH FLOOR</a>
</li>
<li><a href="#">21ST FLOOR</a>
</li>
<li><a href="#">22ND FLOOR</a>
</li>
<li><a href="#">23RD FLOOR</a>
</li>
<li><a href="#">24TH FLOOR</a>
</li>
...
CSS
.top-menu {
height:95px;
width:640px;
float:left;
vertical-align:top;
}
#nav {
margin-top:44px;
display: block;
height: 35px;
width: 640px;
}
#nav li {
float: left;
display: block;
}
#nav li a, #nav li a.first-top {
font:bold 11px Verdana;
text-decoration: none;
cursor:pointer;
text-align:left;
color: #7a913f;
}
#nav li a {
margin-left:44px;
}
#nav li a.first-top {
margin-left:12px;
}
#nav li a:hover {
color: #654e32;
text-decoration: none;
}
/* Targeting the first level menu */
#nav li ul {
background-color:#f2eee5;
border-left: solid 1px #EAE3D9;
border-right: solid 1px #EAE3D9;
border-bottom: solid 1px #EAE3D9;
display: none;
margin: 0 0 0 20px;
padding: 5px 0 0 0;
text-align: left;
position: absolute;
z-index: 1;
}
#nav li ul li {
clear:both;
display: block;
padding: 6px 13px;
}
#nav li ul li a {
margin: 0;
}
/* Targeting the second level menu */
#nav li ul li ul {
background-color:#f2eee5;
border: solid 1px #EAE3D9;
display: none;
margin: 0 0 0 100px;
padding: 0;
text-align: left;
position: absolute;
z-index:-2;
}
/* A class of current will be added via jQuery */
#nav li.current > a {
background: transparent;
}
/* CSS fallback */
#nav li:hover > ul.child {
display: block;
}
#nav li:hover > ul.grandchild {
display: block;
}
JavaScript
// Document Listening
$(document).ready(function () {
// JQuery running fine, don't need CSS trick for dropdown
// Remove the class of child and grandchild, this removes the CSS 'falback'
$("#nav ul.child").removeClass("child");
$("#nav ul.grandchild").removeClass("grandchild");
// When a list item that contains an unordered list is hovered on
$("#nav li").has("ul").click(function (e) {
$("#nav li").children("ul").not($(this).parents()).slideUp("fast");
$(this).children("ul").slideDown("fast");
e.stopPropagation();
});
});
// Document Click
// Click on anything else other then the link you clicked and close
$(document).mouseup(function (event) {
if (!$(event.target).closest("#nav li").length) {
$("#nav li").children("ul").slideUp("fast");
}
});