This is a responsive navigation menu (pure css), that highlights the page with a short JavaScript I found online. I have it all working, but the CSS is totally a mess. The menu is actually a PHP .inc file, so that it can be used site wide.
$(document).ready(function(){
var str=location.href.toLowerCase();
$('nav li a').each(function() {
if (str.indexOf(this.href.toLowerCase()) > -1) {
$("li.highlight").removeClass("highlight");
$(this).parent().addClass("highlight");
}
});
$('li.highlight').parents().each(function(){
if ($(this).is('li')){
$(this).addClass("highlight");
}
});
})
/* nav menu css----*/
nav {padding: 50px 0 30px 0; font-size: 24px; border: none; color: #7E6B6E;}
nav ul {list-style: none;}
nav li {float: left;}
nav li a {
padding: 5px 5px;
color: #DBA182;
display: block;
font-weight: normal;
border-bottom: 3px solid #fff;}
nav li.highlight a {
color: #DB002E;
display: block;
border-bottom: 3px solid #DB002E;}
nav ul li:hover a {
color: #DB002E;
display: block;
font-weight: normal;
border-bottom: 3px solid #DB002E;}
nav ul li.highlight a {
color: #DB002E;
display: block;
border-bottom: 3px solid #DB002E;}
nav ul li.highlight:hover a {
color: #DB002E;
display: block;
border-bottom: 3px solid #DB002E;}
nav li ul {
background: #F1EDED;
display: none;
position: absolute;
z-index: 200;}
nav li:hover ul {
display: block;}
nav li li {
display: block;
float: none;
padding: 0;
width: auto;
color: #7E6B6E;
border-bottom: 1px solid #FFF;}
nav li:hover li a {
background: none;
color: #7E6B6E;
border-bottom: 1px solid #FFF;}
nav li.highlight li a {
background: none;
color: #7E6B6E;
border-bottom: 1px solid #FFF;}
nav li.highlight:hover li a {
background: none;
color: #7E6B6E;
border-bottom: 1px solid #FFF;}
nav li ul a {
display: block;
font-size: 18px;
color: #7E6B6E;
border-bottom: 1px solid #FFF;}
nav li ul a:hover, nav li ul li:hover a {
background: #efdacf;
color: #DB002E;
border-bottom: 1px solid #FFF;}
nav li.highlight ul a:hover, nav li.highlight ul li:hover a {
background: #efdacf;
color: #DB002E;
border-bottom: 1px solid #FFF;}
nav li.highlight ul.childNav li.highlight {
position: relative;
float: none;
width: auto;
border-bottom: 1px solid #FFF;}
nav li.highlight ul.childNav li.highlight a {
position: relative;
float: none;
width: auto;
color: #FFF;
background: #E8C2AD;
border-bottom: 1px solid #DB002E;}
nav li.highlight ul.childNav li.highlight a:hover {
position: relative;
float: none;
width: auto;
color: #FFF;
background: #E8C2AD;
border-bottom: 1px solid #DB002E;}
.show-menu {color: #fff; background: #E5DACF; text-align: center; padding: 10px 5px; display: none; cursor: pointer;}
/*Hide checkbox*/
input[type=checkbox] {display: none;}
/*Show menu when invisible checkbox is checked*/
input[type=checkbox]:checked ~ #menu {display: block;}
/*media query */
@media handheld, only screen and (max-width: 767px) {
/* nav Make dropdown links appear inline*/
nav {
padding: 10px 0 10px 0;
}
nav ul, nav ul.childNav {
position: static;
display: none;
background-color: #F8F6F3;
}
nav li {
}
/* nav Make all menu links full width*/
nav ul li, nav ul.childNav, nav li a {
width: 100%;
display: block;
}
/*nav Display 'show menu' link*/
nav .show-menu {
display: block;
}
}
/* end nav */
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<nav>
<label for="show-menu" class="show-menu">Menu</label>
<input type="checkbox" id="show-menu" role="button">
<ul id="menu">
<li><a href="/">home</a></li>
<li><a href="#">about</a>
<ul class="childNav">
<li><a href="#">about link 2</a></li>
<li><a href="#">about link 3</a></li>
</ul>
</li>
<li><a href="#">services</a>
<ul class="childNav">
<li><a href="#">services link 2</a></li>
<li><a href="#">services link 3</a></li>
</ul>
</li>
<li><a href="#">contact</a></li>
</ul>
</nav>