Page 1 of 1

Horizontal CSSMenu Problems...

Posted: Thu Mar 05, 2009 1:44 pm
by likrish
Hi, I have been struggling with the CSS Horizontal menu to a point where now I am fed up of trying.

I am trying to create a NICE looking centered and fluid Horizontal menu, with correct proportions and effects.

Please take a look at the following site page example... I have at the top the CSSMenu from CMSMS (looks shabby).

And beneath I have a standard non-dynamic version of what I want it to look like.

The demo can be seen here... http://managedrisksolutions.com/index.php?page=test

Here is the Template and CSS code...
***CSS***
---------------------------
/* Horizontal menu for the CMS CSS Menu Module */
/* by Alexander Endresen */

#menu_vert {
   margin-left: 1px;
   margin-right: 1px;
}

/* The wrapper clears the floating elements of the menu */

/* Fix for Opera 8 */
.clearb { clear: both; }

/* EDIT HERE 1 - FROM DOUG - Below styles the dynamically created div id="menuwrapper"
Change settings here to:
>width of nav bar - common widths are 760px, 955px, or 100%
>alignment of all all levels of menu items */
#menuwrapper {
   /*   overflow: hidden;  */
   background-color: transparent;
   width: 100%;
   margin-left: auto;
   margin-right: auto;
   z-index: 500;
   text-align: centre;

}

/* EDIT HERE 2 - Set the width of the menu elements at second level. Leaving first level flexible. */
#primary-nav li li {
   width: 200px;
   height:16px;
   line-height:16px;
}

/* Unless you know what you do, do not touch these positioning elements */
#primary-nav, #primary-nav ul {
   list-style: none;
   margin: 0px;
   padding: 0px;
}

#primary-nav ul {
   position: absolute;
   top: auto;
   display: none;

}
#primary-nav ul ul {
   margin-top: 1px;
   margin-left: -1px;
   left: 100%;
   top: 0px;
}

#primary-nav li {
   margin-left: -1px;
   float: left;
}

#primary-nav li li {
   margin-left: 0px;
   margin-top: -1px;
   float: none;
   position: relative;
}
/* End of positioning elements */

/* Styling the basic apperance of the menu elements
EDIT HERE 3- You can change the text color for all levels of the menu here. To change the sublevel text to a different
color see EDIT 6 */
#primary-nav a {
font-family:verdana;   
display: block;
   margin: 0px;
   /*padding: 5px 10px;*/
   text-decoration: none;
   color: #545454;
line-height:28px;
}
/* EDIT HERE 4 - You can edit or remove side bordres on the main nav bar. Font attributes set here affect all levels */
#primary-nav li a {
   border-right: 0px solid #C0C0C0;
   border-left: 1px solid #C0C0C0;
height:26px;
   }
/* EDIT HERE 5 - Edit or remove bordres of the 2nd and 3rd level menu items
If you would like a different font color for submenu text change it here
*/
#primary-nav li li a {
   border: 0px solid #C0C0C0;
}
/* EDIT HERE 6 - I set the background of the main nav bar to transparent so I can
add gradient background pictures in the html.
Obviously, you can also change main nav bar to a different color.
Note: Just changing this background color in the default CSS menu template will also affect
all lower levels of the menu, you must also add the edits in 7 and 8 at the bottom of this sheet. */   
#primary-nav li, #primary-nav li.menuparent {
   background-color: transparent;
}

/* Styling the basic apperance of the active page elements (shows what page in the menu is being displayed) */

#primary-nav li.menuactive {
   background: #C7C7C7 url('images/mrsl/nav-hover.gif');
   color:white;

}


/* Styling the basic apperance of the menuparents - here styled the same on hover (fixes IE bug) */
/* NOTE FROM DOUG - I changed the positioning so it's easier to use other arrow graphics. */
#primary-nav ul li.menuparent,
#primary-nav ul li.menuparent:hover,
#primary-nav ul li.menuparenth {
   /* arrow for menuparents */
   background-image: url(../ma10.gif);
   background-position: 180px center;
   background-repeat: no-repeat;
   }

/* Styling the apperance of menu items on hover
NOTE from Doug-added "#primary-nav ul li.menuparent:hover," to this section so it works in FF and IE6*/

#primary-nav li:hover,
#primary-nav li.menuh,
#primary-nav li.menuparenth,
#primary-nav ul li.menuparent:hover,
#primary-nav li.menuactiveh {
  color:white;
  background: #ccc url('images/mrsl/nav-hover.gif');
}

/* The magic - set to work for up to a 3 level menu, but can be increased unlimited */

/*
just add
#primary-nav li:hover ul ul,
#primary-nav li.menuparenth ul ul ul,
for fourth level
*/
#primary-nav ul,
#primary-nav li:hover ul,
#primary-nav li:hover ul ul,
#primary-nav li.menuparenth ul,
#primary-nav li.menuparenth ul ul {
   display: none;
}

/* add
#primary-nav ul ul ul li:hover ul,
#primary-nav ul ul ul li.menuparenth ul,
for fourth level
*/
#primary-nav li:hover ul,
#primary-nav ul li:hover ul,
#primary-nav ul ul li:hover ul,
#primary-nav li.menuparenth ul,
#primary-nav ul li.menuparenth ul,
#primary-nav ul ul li.menuparenth ul {
   display: block;
height:37px;
}

/* IE Hacks */
/* EDIT HERE 7 - You can change the background color of submenu items that ARE NOT parents match with color in edit 8 */
#primary-nav li li {
   float: left;
   clear: both;
   background-color: #5B8AB9;
}
/* Don't change */
#primary-nav li li a {
   height: 1%;
}
/* EDIT HERE 8 - You can change the background color of submenu items that ARE parents (match with color in edit 7) */
#primary-nav ul li.menuparent {
   background-color: #5B8AB9;
}

/* ADDED TO GET RID OF MENU NUMBERING. ALTERNATIVELY ADD ACCESSABILITY STYLESHEET */
dfn {
   position: absolute;
   left: -1000px;
   top: -1000px;
   width: 0;
   height: 0;
   overflow: hidden;
   display: inline;
}
---------------------------
***Template code***
--------------------------
Using standard cssmenu.tpl with Background in a Div Called as follows...


{menu template='cssmenu.tpl'}

------------------------------

If anyone can see a way of helping this would be much appreciated...

I can also pay for help if someone was prepared to install the necessary code on my behalf...

Dean Hurley
dean.hurley@likrish.com
Skype: datalynk