View Full Version : Nested Side Bar Menu - Background Color Question
Jimmy506
05-07-2011, 07:08 PM
Hi,
I'm using the "Nested Side Bar Menu":
http://www.dynamicdrive.com/style/csslibrary/item/nested_side_bar_menu/
Question: Is there a way to have a separate background color for the sub-menu?
In other words- a different color than the parent menu...
In the CSS: /*Sub level menu items */
If I try to add this- nothing seems to change.
.background-color: #E2F1F8;
}
Thanks very much,
Jimmy
deathbycheese
05-07-2011, 09:52 PM
Hi Jimmy,
Try giving the <li>s of each level a separate class, removing any background-color references that are within the non-li parent containers. Then assign a bkgd color to each <li> level.
dbc
-------------------------------------------------
If this was helpful, please click the 'thanks' button.
jscheuer1
05-08-2011, 10:49 AM
/*Sub level menu items */
.sidebarmenu ul li ul{
position: absolute;
width: 170px; /*Sub Menu Items width */
top: 0;
visibility: hidden;
background-color: yellow;
}
Jimmy506
05-08-2011, 05:48 PM
Hey thanks guys-
I still can't seem to make it work though.
On the idea of giving each <li> it's own class... I don't even know how to start with doing that.
Anyway you could demonstrate using the example here:
http://www.dynamicdrive.com/style/csslibrary/item/nested_side_bar_menu/
Thanks,
Jimmy
deathbycheese
05-08-2011, 06:30 PM
When initially attempting to help, I tried John's method too. For some reason, however, the parent ul css stays in control of the sub ul, so it didn't work - very strange. So, I tried separating the li's with their own classes and omitting background color reference from the parent ul li ul format. This was the only way I could get it to work. Here's what I did:
Remove the background-color reference from here:
.sidebarmenu ul li a:link, .sidebarmenu ul li a:visited, .sidebarmenu ul li a:active{
background-color: #012D58; /*background of tabs (default state)*/
}
Give each level's li it's own class:
.level1 {
background-color: #ff2233;
}
.level2 {
background-color: #440044;
}
.level3 {
background-color: #009900;
}
and
<ul id="sidebarmenu1">
<li class="level1"><a href="#">Item 1</a></li>
<li class="level1"><a href="#">Item 2</a></li>
<li class="level1"><a href="#">Folder 1</a>
<ul class="sub1">
<li class="level2"><a href="#">Sub Item 1.1</a></li>
<li class="level2"><a href="#">Sub Item 1.2</a></li>
</ul>
</li>
...etc
dbc
-------------------------------------------------
If this was helpful, please click the 'thanks' button.
Jimmy506
05-08-2011, 07:51 PM
Hey thanks to both of you: John and DBC!
DBA...Once I removed this background-color reference, John's method started working:
.sidebarmenu ul li a:link, .sidebarmenu ul li a:visited, .sidebarmenu ul li a:active{
background-color: #012D58; /*background of tabs (default state)*/
}
But also your <li> styling is working out too. Thanks for the time to spell it out for me.
Jimmy
deathbycheese
05-08-2011, 08:20 PM
Teamwork. :)
-------------------------------------------------
If this was helpful, please click the 'thanks' button.
ajfmrf
05-09-2011, 03:36 AM
http://web-user.net/1test/4/1.html
<html>
<head>
<title></title>
<style type="text/css">
/*Credits: Dynamic Drive CSS Library */
/*URL: http://www.dynamicdrive.com/style/ */
.sidebarmenu ul{
margin: 0;
padding: 0;
list-style-type: none;
font: bold 13px Verdana;
width: 180px; /* Main Menu Item widths */
border-bottom: 1px solid #ccc;
}
.sidebarmenu ul li{
position: relative;
}
/* Top level menu links style */
.sidebarmenu ul li a{
display: block;
overflow: auto; /*force hasLayout in IE7 */
color: white;
text-decoration: none;
padding: 6px;
border-bottom: 1px solid #778;
border-right: 1px solid #778;
}
.sidebarmenu ul li a:link, .sidebarmenu ul li a:visited {
background-color: #d11b70;
}
.sidebarmenu ul li a:visited{
color: white;
}
.sidebarmenu ul li a:hover{
background-color: blue;
}
/*Sub level menu items */
.sidebarmenu ul li ul{
position: absolute;
width: 170px; /*Sub Menu Items width */
top: 0;
visibility: hidden;
background-color:#3de616;
}
.sidebarmenu ul li ul a:link {
background-color: #3de616;
}
.sidebarmenu ul li ul a:hover{
background-color: blue;
}
.sidebarmenu ul li ul li ul a:link {
background-color: bisque;
}
.sidebarmenu ul li ul li ul a:hover{
background-color: grey;
}
.sidebarmenu a.subfolderstyle{
background: url(right.gif) no-repeat 97% 50%;
}
/* Holly Hack for IE \*/
* html .sidebarmenu ul li { float: left; height: 1%; }
* html .sidebarmenu ul li a { height: 1%; }
/* End */
</style>
<script type="text/javascript">
//Nested Side Bar Menu (Mar 20th, 09)
//By Dynamic Drive: http://www.dynamicdrive.com/style/
var menuids=["sidebarmenu1"] //Enter id(s) of each Side Bar Menu's main UL, separated by commas
function initsidebarmenu(){
for (var i=0; i<menuids.length; i++){
var ultags=document.getElementById(menuids[i]).getElementsByTagName("ul")
for (var t=0; t<ultags.length; t++){
ultags[t].parentNode.getElementsByTagName("a")[0].className+=" subfolderstyle"
if (ultags[t].parentNode.parentNode.id==menuids[i]) //if this is a first level submenu
ultags[t].style.left=ultags[t].parentNode.offsetWidth+"px" //dynamically position first level submenus to be width of main menu item
else //else if this is a sub level submenu (ul)
ultags[t].style.left=ultags[t-1].getElementsByTagName("a")[0].offsetWidth+"px" //position menu to the right of menu item that activated it
ultags[t].parentNode.onmouseover=function(){
this.getElementsByTagName("ul")[0].style.display="block"
}
ultags[t].parentNode.onmouseout=function(){
this.getElementsByTagName("ul")[0].style.display="none"
}
}
for (var t=ultags.length-1; t>-1; t--){ //loop through all sub menus again, and use "display:none" to hide menus (to prevent possible page scrollbars
ultags[t].style.visibility="visible"
ultags[t].style.display="none"
}
}
}
if (window.addEventListener)
window.addEventListener("load", initsidebarmenu, false)
else if (window.attachEvent)
window.attachEvent("onload", initsidebarmenu)
</script>
</head>
<body>
<div class="sidebarmenu">
<ul id="sidebarmenu1">
<li><a href="#">Item 1</a></li>
<li><a href="#">Item 2</a></li>
<li><a href="#">Folder 1</a>
<ul>
<li><a href="#">Sub Item 1.1</a></li>
<li><a href="#">Sub Item 1.2</a></li>
</ul>
</li>
<li><a href="#">Item 3</a></li>
<li><a href="#">Folder 2</a>
<ul>
<li><a href="#">Sub Item 2.1</a></li>
<li><a href="#">Folder 2.1</a>
<ul>
<li><a href="#">Sub Item 2.1.1</a></li>
<li><a href="#">Sub Item 2.1.2</a></li>
<li><a href="#">Sub Item 2.1.3</a></li>
<li><a href="#">Sub Item 2.1.4</a></li>
</ul>
</li>
</ul>
</li>
<li><a href="#">Item 4</a></li>
</ul>
</div>
</body>
</html>
But I seem to be a bit late and not as easy as the other options,-oh well
Bud
Powered by vBulletin® Version 4.2.2 Copyright © 2021 vBulletin Solutions, Inc. All rights reserved.