View Full Version : creating a dropdown menu using CSS- problem

09-17-2007, 02:36 AM

I am trying to create a valid W3c/CSS site which uses a drop down menu. I have created a valid page using Dreamweaver 8.

I have used 2 CSS layers 1 for the menu and 1 layer for the text. Everything works fine until i added the text layer, now when I hover over the drop down menu items which have text underneath, the menu disappears as my cursor changes to the vertical text icon that looks like a big 'I'.

The problem is the cursor is focusing on text instead of the menu, but I dont know how to stop this, I have change the order of the layers but I cant see the text if its the bottom layer.

Is there anyway round this? without not having no text underneath where my drop down menu passes.

Any help truly appreciated



09-17-2007, 06:47 AM
Hey Lee,
I didn't quite understand what you are talking about,
but I can advise you to visit Stu Nicholls' site, and checking out how he did some of the stuff.

He has quite an impressive gallery of CSS menus from all sorts and kinds, and they are all valid.
Find something you like, and just checkout the source to see how the stuff works.
If you'll need any further help, it will be more helpful if you add some code to show us what you are talking about.

To change the mouse cursor icon, you can use this attribute in the CSS:
cursor: default; /* For regular arrow shaped icon */
cursor: pointer; /* For hand shaped icon (links usually) */

09-17-2007, 01:25 PM
Hi there,

Thanks for that Eli.

Here is my code html followed by CSS style sheet, hope this helps;

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link href="p7exp/p7exp.css" rel="stylesheet" type="text/css">
<script type="text/javascript" src="p7exp/p7exp.js"></script>
<!--[if lte IE 7]>
#menuwrapper, #p7menubar ul a {height: 1%;}
a:active {width: auto;}

<link href="p7exp.css" rel="stylesheet" type="text/css">
<link href="p7_cssexpress/p7exp/p7exp.css" rel="stylesheet" type="text/css">
<style type="text/css">
#Layer3 {
background-image: url(pictures/background.jpg);
body {
background-color: #000000;
#Layer2 {
.style1 {color: #FFFFFF}
#Layer1 {
<div id="Layer3">
<div id="menuwrapper">
<ul id="p7menubar">
<li><a href="#">Home</a></li>
<li><a class="trigger" href="#">Trigger One</a>
<li><a href="#">Sub 1.1</a></li>
<li><a href="#">Sub 1.2</a></li>
<li><a href="#">Sub 1.3</a></li>
<li><a href="#">Sub 1.4</a></li>
<li><a class="trigger" href="#">Trigger Two</a>
<li><a href="#">Sub 2.1</a></li>
<li><a href="#">Sub 2.2</a></li>
<li><a href="#">Sub 2.3</a></li>
<li><a href="#">Sub 2.4</a></li>
<li><a href="#">Sub 2.5</a></li>
<li><a class="trigger" href="#">Trigger Three</a>
<li><a href="#">Sub 3.1</a></li>
<li><a href="#">Sub 3.2</a></li>
<li><a href="#">Sub 3.3</a></li>
<li><a href="#">Sub 3.4</a></li>
<li><a href="#">Sub 3.5</a></li>
<li><a href="#">Sub 3.6</a></li>
<li><a href="#">Sub 3.7</a></li>
<li><a href="#">Sub 3.8</a></li>
<br class="clearit">

<div id="Layer2">
<DIV align="left" class="style1">This is where you would explain about your company. filler text All the details and more would go here. filler text... example.of work This is where you would explain about your company. </DIV>
<DIV class="style1">Our favorite project! This is where you would explain about your company. All the details and more would go here. filler text... This is where you would explain about your company. All the details and more would go here. filler text exam</DIV>
<DIV align="left" class="style1">This is where you would explain about your company. filler text All the details and more would go here. filler text... example.of work This is where you would explain about your company. </DIV>

body {
font-family: "Trebuchet MS", Arial, sans-serif;
font-size: 100%;
background-color: #FFFFFF;
margin: 24px 0;
padding: 0;
Container for the menu. We set top and bottom borders only because the menu container
stretches the entire window width. Note that this container can go inside a fixed width
element that is centered on the page, if you so desire. It can even go inside a table cell.
It carries a background image for aesthetics.
#menuwrapper {
border-top: 1px solid #000;
border-bottom: 1px solid #333;
background-color: #000000;

/*Clears the floated menu items.
Assigned to a BR tag placed just before
menuwrapper's closing DIV tag*/
.clearit {
clear: both;
height: 0;
line-height: 0.0;
font-size: 0;
p7menubar is the root UL and p7menubar ul applies to all the sub-menu ULs.
We set padding and margin to zero to eliminate all indentation, turn bullets off,
and set a font-family different from the global font-family declared for the
body element above. This sets font for just the menu. Do not add a font-size here.
#p7menubar, #p7menubar ul {
padding: 0;
margin: 0;
list-style: none;
font-family: Arial, Helvetica, sans-serif;
Root-Level Links. Do not change the first two properties.
Adjust padding values to make the root links taller and to offset them
from the left and right edges of the link box. The border right creates a
separator between links. Font-size is set here and will apply to all menu levels.
Font color is set to light gray.
#p7menubar a {
display: block;
text-decoration: none;
padding: 5px 10px 5px 10px;
border-right: 1px solid #333;
font-size: .85em;
color: #CCCCCC;
Class assigned to those Root-Level links that have associated Sub-Menus.
The top and bottom padding assigned this element must be the same as
that assigned to the p7menubar a element. The right padding is increased
to accomodate the display of background image depicting a downward
pointing arrow.
#p7menubar a.trigger {
padding: 5px 16px 5px 10px;
background-image: url(images/p7PM_dark_south.gif);
background-repeat: no-repeat;
background-position: right center;
The Root-Level list items. Floating left allows
them to appear horizontally. Width is for IE5 Mac. The last rule in
this style sheet will set the width for this element to auto for all
other browsers - hiding it from IE5 Mac. The width is proportional.
As you add and edit root menu items, you will need to test this width
to ensure it is wide enough to accomodate all text.
#p7menubar li {
float: left;
width: 9em;
Sets width for Sub-Menu box and the List Items inside - in proportional em units.
This allows the sub-menu width to expand if users resize the text in their browsers.
#p7menubar li ul, #p7menubar ul li {
width: 12em;
The sub-menu links. We set color and turn off the right border, which
would otherwise be inherited from the root link rule. We set top and
bottom padding less than the root items and increas the left padding
to indent the sub-menu links a small amount in from the root links.
#p7menubar ul li a {
color: #565656;
border-right: 0;
padding: 3px 12px 3px 16px;
Sub-Menu Unordered Lists describes each dropdown sub-menu grouping.
Positioned Absolutely to allow them to appear below their root trigger.
Set to display none to hide them until trigger is moused over.
Background Color must be set or problems will be encountered in MSIE.
Right and bottom borders are set to simulate a raised look.
A gradient background image is assigned.
#p7menubar li ul {
position: absolute;
display: none;
background-color: #FFFFFF;
border-right: 1px solid #333333;
border-bottom: 1px solid #333333;
background-image: url(images/p7exp_mgrad.jpg);
background-repeat: repeat-x;
Changes the Text color and background color when the Root-Level
menu items are moused over. The second selector sets color and background
when Root-Level items are accessed with the keyboard tab key. The third
selector sets an active state to support keyboard access in MSIE. The fourth
selector is assigned to IE5 and IE6 Windows via the P7_ExpMenu script.
Note that IE7 supports hover on elements other than links and so behaves
like Firefox, Opera, and Safari - making the menu operable even if JavaScript
is not enabled.
#p7menubar li:hover a, #p7menubar a:focus,
#p7menubar a:active, #p7menubar li.p7hvr a {
color: #000000;
background-color: #C19674;
Set the Sub-Menu UL to be visible when its associated
Root-Level link is moused over. The second selector is
assigned to IE5 and IE6 via the P7_ExpMenu script.
#p7menubar li:hover ul, #p7menubar li.p7hvr ul {
display: block;
Sets the Text color of the Sub-Level links when the Root-Level
menu items are moused over. The second selector is
assigned to IE5 and IE6 via the P7_ExpMenu script.
The color set should march the normal Sub-Level link color
in the rule: #p7menubar ul li a. The background color must be
transparent to allow the underlying gradient background on the UL
to show through.
#p7menubar li:hover ul a, #p7menubar li.p7hvr ul a {
color: #000000;
background-color: transparent;
The normal hover class for Sub-Level links. The Important directive
is required for older browsers. We set a background color, which shows
over the gradient background. We set text color to white.
#p7menubar ul a:hover {
background-color: #606060!important;
color: #FFFFFF!important;
/* The single backslash \ character inside this comment
causes IE5 Mac to ignore the following rule, which allows other
browsers to render top-level menu items to their natural width.
Do not edit this rule in any way. */
#p7menubar li {width: auto;}

Thanks for lookin.


09-17-2007, 01:56 PM
try changing the z-index for Layer3 to something greater than the z-index for the div which is interfering with it.

And you are linking to a javascript file that is not posted. Might need a link to the page to see what is going on...

09-17-2007, 02:02 PM
When I do this the text on the div interfering with it, the text on the that div dissappears along with layer.