Start your free trial now, and begin learning software, business and creative skills—anytime, anywhere—with video instruction from recognized industry experts.

Start Your Free Trial Now

Solution: Structuring navigation

Solution: Structuring navigation provides you with in-depth training on Developer. Taught by James W… Show More

CSS: Styling Navigation

with James Williamson

Video: Solution: Structuring navigation

Solution: Structuring navigation provides you with in-depth training on Developer. Taught by James Williamson as part of the CSS: Styling Navigation
Expand all | Collapse all
  1. 3m 8s
    1. Welcome
    2. What you should know before watching this course
      1m 12s
    3. Using the exercise files
      1m 14s
  2. 35m 25s
    1. Organizing menus with lists
      4m 26s
    2. Ensuring accessibility
      9m 3s
    3. Using the nav element
      7m 30s
    4. Creating block-level links
      3m 8s
    5. Lab: Structuring navigation
      4m 11s
    6. Solution: Structuring navigation
      7m 7s
  3. 48m 42s
    1. Exploring link style considerations
      9m 2s
    2. Using global link styles
      9m 56s
    3. Styling link states
      10m 57s
    4. Indicating external links
      10m 4s
    5. Styling image links
      8m 43s
  4. 52m 5s
    1. Stripping default list styling
      4m 34s
    2. Defining link dimensions
      6m 0s
    3. Setting link styling
      3m 36s
    4. Aligning links vertically
      4m 11s
    5. Controlling link spacing
      2m 30s
    6. Styling menus with borders
      2m 32s
    7. Creating rollovers
      4m 45s
    8. Restricting link styling
      3m 31s
    9. Lab: Creating a vertical menu
      11m 44s
    10. Solution: Creating a vertical menu
      8m 42s
  5. 54m 58s
    1. Stripping list styling
      3m 35s
    2. Displaying links horizontally
      6m 14s
    3. Clearing floats
      6m 12s
    4. Controlling link sizing and spacing
      3m 11s
    5. Styling links
      7m 16s
    6. Creating rollovers
      5m 52s
    7. Indicating current pages
      4m 43s
    8. Controlling cursor states
      2m 46s
    9. Lab: Creating horizontal menus
      6m 45s
    10. Solution: Creating horizontal menus
      8m 24s
  6. 55m 35s
    1. Overview of dropdown menus
      1m 17s
    2. Structuring submenus
      5m 56s
    3. Styling submenus
      6m 4s
    4. Creating submenu rollovers
      3m 28s
    5. Positioning submenus
      5m 43s
    6. Controlling submenu display
      5m 5s
    7. Creating persistent hover states
      5m 53s
    8. Animating menus with CSS transitions
      6m 29s
    9. Lab: Dropdown menus
      6m 51s
    10. Solution: Dropdown menus
      8m 49s
  7. 58m 7s
    1. Creating CSS-only buttons
      8m 39s
    2. Creating special effects for buttons
      4m 2s
    3. Enhancing buttons with gradients
      7m 40s
    4. Overview of CSS sprites
      3m 30s
    5. Using CSS sprites for icons
      14m 30s
    6. Styling block-level links
      8m 38s
    7. Lab: Enhancing navigation with CSS
      5m 26s
    8. Solution: Enhancing navigation with CSS
      5m 42s
  8. 6m 29s
    1. Additional resources
      6m 29s

please wait ...
Solution: Structuring navigation
Video Duration: 7m 7s 5h 14m Beginner


Solution: Structuring navigation provides you with in-depth training on Developer. Taught by James Williamson as part of the CSS: Styling Navigation

View Course Description

Join James Williamson, as he shows you how to create elegant menus, links, and buttons that help visitors navigate your site faster and more intuitively. The course covers creating structured navigation that is accessible and clean, styling links, and building horizontal and vertical menus with rollover effects. The last chapter reveals how to create stylish buttons with special effects and CSS sprites.

Topics include:
  • Organizing menus with lists
  • Creating block-level links
  • Styling links, link states, and image links
  • Defining link dimensions
  • Controlling link spacing in a menu
  • Creating rollovers
  • Clearing floats
  • Indicating current pages
  • Controlling cursor states
  • Building dropdown menus
  • Creating CSS-only buttons
Developer Web

Solution: Structuring navigation

Let's take a look at the finished files from our structuring navigation lab and then compare them to your solution. Keep in mind that structuring HTML content often relies heavily on personal preferences, so don't automatically assume that your file is wrong if it doesn't match mine. Simply listen to why I structured the content the way that I did and then re-examine your content based on my reasoning. Deciding to keep it the way that you did it is an entirely viable option if you feel strongly about why you did something a certain way.

So, this time I have the index.htm open from the 01_05/finished_files folder, and I am just going to go through each of the steps and kind of show you how I solve the problem, and then you can sort of compare that to yours. So the first thing we wanted to do was to add a Skip navigation link below the page's main heading. So if I scroll down, I can see that just below the h1 I've added this anchor element here with the text of skip to main content, so it has actual content inside the skip link. I'm linking down to the main content region so I am using the ID for the main article to do that.

Now if you went down to one of those initial sections and just skipped the navigation, that's fine, there is nothing wrong. I just chose to go to the main content instead. I also gave it a title so that it's a little bit more descriptive, skip to main page content. And then I did something that you probably didn't do, which is I applied this class right here, class attribute of skip to it, and I just did that for stylistic purposes. It's pretty much the way I handle all of my skip navigations if I want to hide them or change them stylistically, I usually apply a class of skip to it, and that allows me to style that particular link differently than any of the other links on my page.

The next task was to properly structure the menu below this, and if I scroll down just a little bit, I can see that what I did was I took the links, and I sort of wrapped them in an unordered list so that they're now organized and structured as relating to each other within that list. And I also wrapped the list in a nav element because they are the site's main navigation, so it makes sense as this is an HTML file, that they are wrapped inside of a nav element. Now I did a couple of things here that were optional.

I added the role of navigation. Some of you guys may have done that based upon the accessibility movie that we covered earlier in the chapter, but I also gave it an ID, and I gave it an ID of page nav, and I doubt very many of you have exactly the same thing going on there. Now the reason that I do that is I like to take all main sections of content and identify it with an ID attribute. To me, those are unique sections of content so I like to identify them as such, and I like the ID to be a little bit meaningful in terms of what it's actually representing.

Now the next step was to go down to these two sections, the student spotlight and the current show, and to take the text inside there that said more info and change that in some way so that was a little bit more descriptive. So I really, really doubt that you guys have exactly what I have here since, you know, I left that totally up to your interpretation. So for Student Spotlight, I really didn't do anything fancy. I just did student spotlight. And at this point when somebody clicks on it, if a screen reader was reading this, they would read through that, and then they would say link Student Spotlight and they can infer from that, that they are actually going to read more about the student profile.

Below that we have our Current Show, and I just changed that text to see our current show. You have to be really careful. A lot of times when somebody uses text like more info or click here it's because they don't have a lot of room. In this case, if I looked at the way our page looked in the finished file before we did this, when I hover over this you can see how the more info is being displayed. So we do have a line here which gives us a little bit of room for the new text that we've got in place, but oftentimes that might be really, really small. So sometimes coming up with descriptive text that fits into the space that you have for it is not the easiest thing in the world to do.

Now finally, we were to go down to the footer and to see if it would benefit from any additional structuring. So I am going to scroll down, so I'll find my footer, which in this case is now on about line 103. Now, you'll notice that I actually did add a little bit more structure to it, and I did that through the use of a nav element. Now, since this is actually sectioned off into different areas, you have the About Roux Academy, you have Admissions & Programs, you have Student Resources, I could see you guys thinking, okay, well, it is main navigation, so maybe I need a nav element and then actually using three of them, since we have three different sections here about Roux Academy.

And that's really a judgment call. And my judgment here I am looking at these groups of links, and I am saying well they are really all related because there are inter-site links that go to pages within the site and they have three different sections to them, and I have section elements basically performing that role of sectioning them all off. When you look at them as a whole, though, they are all one big group of navigational elements, and that's why I used the nav tag only once around all of those different sections. Now I also used the ARIA role of navigation, and I gave it a class of footer nav.

I doubt you use a class of footerNav, I did that for stylistic purposes. That's obviously something that was just optional, but you'll see it in the finished version of the site, so I want to make sure it was here as well. And of course, the role of navigation is optional, but it's nice for accessibility standards. Now you might be wondering, well, okay, you-- in the previous exercise within the chapter you had links in the footer and you didn't use a nav, and here you have links in the footer, and you did use a nav, why? What's the difference? Well, as I mentioned, it really is a judgment call. I look at this footer, and I see a lot going on here.

Not only do I have all of these links, but after that I have links that go to things like privacy statements, disclosures, student outcomes, things like that. They're just within a paragraph. They are not really navigational structures. So when I look at these unordered lists, these menus that I have for each of these sections, that I have a footer here that's a lot more complex, there is a lot more information going on within the footer than just the links themselves. So the footer tag, or the footer element, really doesn't serve as the organizational element for all of the content inside of it.

And since those links are links within the site, and since they do link to main navigational areas within the site, to me, this serves as maybe even a more comprehensive list of links than the main navigation itself. Those are the things that led to my determination that the nav element should be used. So again, you know, using the nav here or leaving it off totally, a personal preference if you left it off, that's not necessarily the wrong call. It could have been exactly the way that you wanted to express the structure of the page. Now the thing I really want you to take away from this lab is it's really easy for people to lose sight of the fact that writing well- formed semantic HTML does have uses outside of you know making it nicer for user agents and easier to index and parse.

It actually makes it a lot easier for you when you're writing your styles. It makes it easier to write efficient styles. Now this is especially true for navigation. So, pay particular attention to how you plan and structure your links within your sites.

There are currently no FAQs about CSS: Styling Navigation.






Don't show this message again
Share a link to this course

What are exercise files?

Exercise files are the same files the author uses in the course. Save time by downloading the author's files instead of setting up your own files, and learn by following along with the instructor.

Can I take this course without the exercise files?

Yes! If you decide you would like the exercise files later, you can upgrade to a premium account any time.

Become a member Download sample files See plans and pricing

Please wait... please wait ...
Upgrade to get access to exercise files.

Exercise files video

How to use exercise files.

Learn by watching, listening, and doing, Exercise files are the same files the author uses in the course, so you can download them and follow along Premium memberships include access to all exercise files in the library.

Exercise files

Exercise files video

How to use exercise files.

For additional information on downloading and using exercise files, watch our instructional video or read the instructions in the FAQ .

This course includes free exercise files, so you can practice while you watch the course. To access all the exercise files in our library, become a Premium Member.

Join now Already a member? Log in

* Estimated file size

Are you sure you want to mark all the videos in this course as unwatched?

This will not affect your course history, your reports, or your certificates of completion for this course.

Mark all as unwatched Cancel


You have completed CSS: Styling Navigation.

Return to your organization's learning portal to continue training, or close this page.


Upgrade to View Courses Offline


With our new Desktop App, Annual Premium Members can download courses for Internet-free viewing.

Upgrade Now

After upgrading, download Desktop App Here.

Become a Member and Create Custom Playlists

Join today and get unlimited access to the entire library of online learning video courses—and create as many playlists as you like.

Get started

Already a member?

Log in

Exercise files

Learn by watching, listening, and doing! Exercise files are the same files the author uses in the course, so you can download them and follow along. Exercise files are available with all Premium memberships. Learn more

Get started

Already a Premium member?

Exercise files video

How to use exercise files.

Ask a question

Thanks for contacting us.
You’ll hear from our Customer Service team within 24 hours.

Please enter the text shown below:

Exercise files

Access exercise files from a button right under the course name.

Mark videos as unwatched

Remove icons showing you already watched videos if you want to start over.

Control your viewing experience

Make the video wide, narrow, full-screen, or pop the player out of the page into its own window.

Interactive transcripts

Click on text in the transcript to jump to that spot in the video. As the video plays, the relevant spot in the transcript will be highlighted.

You started this assessment previously and didn’t complete it.

You can pick up where you left off, or start over.

Resume Start over

Learn more, save more. Upgrade today!

Get our Annual Premium Membership at our best savings yet.

Upgrade to our Annual Premium Membership today and get even more value from your subscription:

“In a way, I feel like you are rooting for me. Like you are really invested in my experience, and want me to get as much out of these courses as possible this is the best place to start on your journey to learning new material.”— Nadine H.

Thanks for signing up.

We’ll send you a confirmation email shortly.

Sign up and receive emails about and our online training library:

Here’s our privacy policy with more details about how we handle your information.

Keep up with news, tips, and latest courses with emails from

Sign up and receive emails about and our online training library:

Here’s our privacy policy with more details about how we handle your information.

submit Lightbox submit clicked
Terms and conditions of use

We've updated our terms and conditions (now called terms of service).Go
Review and accept our updated terms of service.