Home arrow JavaScript arrow Page 3 - Creating Drop-down Menus Using Progressive Enhancement
JAVASCRIPT

Creating Drop-down Menus Using Progressive Enhancement


In this penultimate installment of the series, I develop a hierarchical drop-down menu, which will use the capabilities offered by jQuery to expand and contract its subsections. Since the entire building process follows the model imposed by Progressive Enhancement, the menu will be completely functional even though it currently lacks, for reasons that will become obvious, truly “dynamic” behavior.

Author Info:
By: Alejandro Gervasio
Rating: 5 stars5 stars5 stars5 stars5 stars / 2
July 27, 2010
TABLE OF CONTENTS:
  1. · Creating Drop-down Menus Using Progressive Enhancement
  2. · Review: using Progressive Enhancement when building a slide show
  3. · Using PE when building a hierarchical drop-down menu
  4. · Defining the menu's visual presentation

print this article
SEARCH DEVARTICLES

TOOLS YOU CAN USE

advertisement
Creating Drop-down Menus Using Progressive Enhancement - Using PE when building a hierarchical drop-down menu
(Page 3 of 4 )

Considering that my purpose here is to build a drop-down menu using the model imposed by PE, the first logical step that must be taken is to create the menu's markup. In accordance with this, below I defined a brand new web page, which includes the bare bones structure of this sample menu. Here it is:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<title>Simple drop-down menu using jQuery</title>

</head>

<body>

<div id="wrapper">

<div id="header">

<h1>Simple drop-down menu using jQuery</h1>

<ul id="navbar">

<li>

<a href="#">About Us</a>

</li>

<li class="menu">

<a href="#">Services</a>

<ul>

<li class="menuitem_top"><a href="#">Menu item 1</a></li>

<li><a href="#">Menu item 2</a></li>

<li class="menuitem_bottom"><a href="#">Menu item 3</a></li>

</ul>

</li>

<li class="menu">

<a href="#">Products</a>

<ul>

<li class="menuitem_top"><a href="#">Menu item 1</a></li>

<li><a href="#">Menu item 2</a></li>

<li><a href="#">Menu item 3</a></li>

<li><a href="#">Menu item 4</a></li>

<li class="menuitem_bottom"><a href="#">Menu item 5</a></li>

</ul>

</li>

<li class="menu">

<a href="#">Portfolio</a>

<ul>

<li class="menuitem_top"><a href="#">Menu item 1</a></li>

<li><a href="#">Menu item 2</a></li>

<li><a href="#">Menu item 3</a></li>

<li><a href="#">Menu item 4</a></li>

<li><a href="#">Menu item 5</a></li>

<li class="menuitem_bottom"><a href="#">Menu item 6</a></li>

</ul>

</li>

<li class="menu">

<a href="#">Blog</a>

<ul>

<li class="menuitem_top"><a href="#">Menu item 1</a></li>

<li><a href="#">Menu item 2</a></li>

<li><a href="#">Menu item 3</a></li>

<li><a href="#">Menu item 4</a></li>

<li class="menuitem_bottom"><a href="#">Menu item 5</a></li>

</ul>

</li>

<li>

<a href="#">Contact</a>

</li>

</ul>

</div>

<div id="content">

<h2>Main content section</h2>

<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse auctor commodo risus, et ultrices sapien vestibulum non. Maecenas scelerisque quam a nulla mattis tincidunt. Etiam massa libero, pharetra vel laoreet et, ultrices non leo. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed posuere ullamcorper lacus et sollicitudin. Morbi ultrices condimentum lacus, sit amet venenatis purus bibendum sit amet. Quisque rhoncus sodales sapien ac blandit. Nam lacus urna, commodo eget tincidunt vitae, ullamcorper at nulla. Vivamus ac iaculis justo. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Aliquam erat volutpat. Sed quis elit erat, et ultricies diam. Phasellus non turpis malesuada erat ultrices tincidunt sed vitae magna. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Duis purus risus, lacinia at faucibus id, luctus nec diam. In nulla neque, consequat ac hendrerit ac, pulvinar eu dui. Aenean in arcu felis, non hendrerit est.</p>

</div>

<div id="footer">

<h2>Footer section</h2>

<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse auctor commodo risus, et ultrices sapien vestibulum non. Maecenas scelerisque quam a nulla mattis tincidunt. Etiam massa libero, pharetra vel laoreet et, ultrices non leo. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed posuere ullamcorper lacus et sollicitudin. Morbi ultrices condimentum lacus, sit amet venenatis purus bibendum sit amet. Quisque rhoncus sodales sapien ac blandit. Nam lacus urna, commodo eget tincidunt vitae, ullamcorper at nulla. Vivamus ac iaculis justo. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Aliquam erat volutpat. Sed quis elit erat, et ultricies diam. Phasellus non turpis malesuada erat ultrices tincidunt sed vitae magna. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Duis purus risus, lacinia at faucibus id, luctus nec diam. In nulla neque, consequat ac hendrerit ac, pulvinar eu dui. Aenean in arcu felis, non hendrerit est.</p>

</div>

</div>

</body>

</html>

As you can see above, the menu's structure has been built upon a few nested lists, which makes it accessible to most users even when viewed with CSS disabled. Also, it contains some typical sections, such as "Services," "Products" and "Contact," but naturally it's possible to remove or add more items to it, according to more specific needs.

At this stage, the menu admittedly looks pretty skeletal, as none of its elements have been styled yet. Therefore, it's time to start making them a little more appealing to the eye by means of some simple CSS styles.

Precisely this styling process will be discussed in the following section, so to learn its full details click on the link that appears below and keep reading.


blog comments powered by Disqus
JAVASCRIPT ARTICLES

- More Top jQuery Tutorials for Beginners
- More Top jQuery Plugins for Menus
- Top jQuery Tutorials for Beginners
- New UI Framework and SDK for JavaScript Rele...
- JavaScript OpenPGP Tool, Node.js 0.6.3 Avail...
- Yahoo Releases Cocktails Language and Develo...
- Customizing jQuery Slideshows: Dynamic Contr...
- Customizing jQuery Slideshows: the animate()...
- Customizing jQuery Slideshows: slideUp() and...
- Customizing jQuery Slideshows: hide() and sh...
- Web Workers: Performing Calculations in Para...
- More Top JavaScript Frameworks and Libraries
- More Dynamic jQuery Styling Techniques
- The Top JavaScript Libraries
- The Top JavaScript Frameworks

Dev Articles Forums 
 RSS  Articles
 RSS  Forums
 RSS  All Feeds
Weekly Newsletter
 
Developer Updates  
Free Website Content 
Contact Us 
Site Map 
Privacy Policy 
Support 



© 2003-2012 by Developer Shed. All rights reserved. DS Cluster 10 - Follow our Sitemap
Popular Web Development Topics
All Web Development Tutorials