Skip to content

Instantly share code, notes, and snippets.

@carlos-sanchez
Created November 14, 2013 04:19
Show Gist options
  • Save carlos-sanchez/7461273 to your computer and use it in GitHub Desktop.
Save carlos-sanchez/7461273 to your computer and use it in GitHub Desktop.
Same navigation code on every page (replaces current)
Most websites highlight the navigation item of the user's location in the website, to help users orientate themselves. This is a fundamental requirement for basic usability, but can be a pain as you'll need to tweak the HTML code behind the navigation for each and every page. So can we have the best of both worlds? Is it possible to have the navigation highlighted on every page, without having to tweak the HTML code on each and every page? Of course it is...
First of all, you'll need to assign a class to each navigation item:
<ul>
<li><a href="#" class="home">Home</a></li>
<li><a href="#" class="about">About us</a></li>
<li><a href="#" class="contact">Contact us</a></li>
</ul>
You'll then need to insert an id into the <body> tag. The id should be representative of where users are in the site and should change when users move to a different site section. When in ‘Home’ it should read <body id="home"> , in ‘About Us’ it should be <body id="about"> and in ‘Contact Us’ <body id="contact"> .
Next, you create a new CSS rule:
#home .home, #about .about, #contact .contact
{
commands for highlighted navigation go here
}
This basically creates a rule that only takes effect when class="home" is contained within id="home" , and when class="about" is in id="about" and class="contact" is in
id="contact" . These situations will only occur when the user is in the appropriate site section, seamlessly creating our highlighted navigation item.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment