logo-dw

by ranjan

I have been designing and developing web applications for 7 years + in India, Australia and USA.
Currently my business caters to fellow designers and developers providing help and support to with custom script and dreamweaver extensions, applications in asp vbscript and conversions to css / accessible layouts.

Dreamweaver DHTML Menu

There are several different ways a DHTML Drop Down Menus can be deployed. Some scripts create the submenus on-the-fly i.e. the submenus are not present on the page as HTML elements but are usually written by "document.write" statements. Since search engines cannot read javascripts, such submenus are not spidered by search engines and screen readers. The solution is to build your own DHTML Menus making sure that the submenus are proper HTML elements within your document and they are only shown and hidden by main menu triggers. Dreamweaver MX 2004 provides us with the necessary tools to build such menus.

Work Files

To start the tutorial, download this zip file (PopEm.zip) which contains files needed for completing this tutorial.

  • Create a new folder in a defined Dreamweaver site and name it PopEm
  • Unzip the PopEm.zip archive and place its contents in the PopEm folder you created in the previous step
  • Open the file popem.htm

Creating the Drop Downs

The file popem.htm is a basic HTML document with the following divs:

  • #header
  • #menu
  • #content
  • #footer

The div #menu consists of three buttons. In this tutorial we will create a drop down for Button 2. Switch to code view and position your cursor at the end of menu #div and start of #content div. Insert a layer as shown below.

dw-menu-1 (7K)

Switch back to design view.Open the Layers Panel (F2) and change the name of the layer from "Layer1" to "SubMenu2" as shown below. With the layer selected, modify the Left(L), Top(T) and Width(W) as shown below. Make sure H is empty.

dw-menu-2 (2K)

dw-menu-3 (2K)

Inside the newly created Layer type out your submenu links as shown below. Make sure that there are no separating <br> tags between the submenu links.

dw-menu-4 (4K)

Your code should look like this:

<div id="SubMenu2" style="position:absolute; width:200px; z-index:2; left: 120px; top: 100px; visibility: hidden;" class="subs">
<a href="#">Sub Menu Link 1Sub Menu Link 2 Sub Menu Link 3Sub Menu Link 4Sub Menu Link 5
</div>

Open the css file stylesraw.css and add the following code:

.subs {
font-size: 80%;
background-color: #454578;
border-right-width: 1px;
border-bottom-width: 1px;
border-left-width: 1px;
border-right-style: solid;
border-bottom-style: solid;
border-left-style: solid;
border-right-color: #FFFFFF;
border-bottom-color: #FFFFFF;
border-left-color: #FFFFFF;
}
.subs a {
color: #FFFFFF;
text-decoration: none;
display: block;
width: 190px;
padding-top: 4px;
padding-right: 0px;
padding-bottom: 4px;
padding-left: 10px;
}

We are using a defined class subs so that additional submenu layers can share the same class. Save and css file and close it.

dw-menu-5 (2K)

Select the div #SubMenu2 in your Dreamweaver status bar and set its class to subs as shown above. Switchback to code view and position your cursor just before </body> and insert another layer. Change its name to closer and drag it below SubMenu2 in your layers panel and change its properties as shown below.

dw-menu-6 (2K)

dw-menu-7 (2K)

The closer layer will hide the submenu onMouseOver. Insert a transparent 1x1 px shim image and resize it as shown below.

dw-menu-8 (1K)

Select the image button2.gif and insert a null link by typing "javascript:;" as shown below.

dw-menu-9 (2K)

Open the Behaviors Panel (Shift + F4). Click the + Button and Choose "Show_Hide Layers" Behavior.

dw-menu-11 (5K)

Select each layer and click "Show" Button.

dw-menu-12 (8K)

Make sure onMouseOver is selected as the event.

dw-menu-12-5 (2K)

Select the transparent image within the closer layer and create a null link.

dw-menu-13 (2K)

Apply the Show-Hide Behavior to this layer this time selecting hide as shown below.

dw-menu-14 (8K)

Make sure onMouseOver event is selected.

Similarly Convert Buttons 1 and 2 into null links and Apply Show-Hide Layer to Button 1 and Button 2, selecting to hide the layers onMouseOver.

Hide the two layers by clicking below the eye icon, till you see a closed eye as shown below. This changes the visibility of the layers to hidden.

dw-menu-15 (2K)

Your Drop Down Menu is now ready and you can test it on your browser (F12).

Notes :
1. You could add the hide layer behavior to the div #header. To do so make sure Events for version 5 browser is selected. This will activate Show-Hide Layer to be applied directly to the header div.

dw-menu-16 (3K)

2.
You could enhance the menu to have hover states for menus and submenus.

Comment/Discuss this article in the forums