CSS Based Multi-Branch Tree View Menu for Website
Recently
I had a requirement to create a multi-branch tree view menu for website which
should be completely CSS based and no single line of JS code.
I would like to share that code with you, hopefully this will help you also.
HTML Code
Here is
simplest HTML code to create multi-branch tree view menu.
<nav>
<ul>
<li><a href="/">Home</a></li>
<li><a href="/about">About Us</a></li>
<li><a href="#">Services</a>
<ul>
<li><a href="#">Reinvent Yourself</a>
<ul>
<li><a href="#">Point1</a></li>
<li><a href="#">Point2</a></li>
<li><a href="#">Point3</a></li>
<li><a href="#">Point4</a></li>
</ul>
</li>
<li><a href="#">Vision/Mission & Core Values</a>
<ul>
<li><a href="#">Point1</a></li>
<li><a href="#">Point2</a></li>
<li><a href="#">Point3</a></li>
<li><a href="#">Point4</a></li>
</ul>
</li>
<li><a href="#">Leverage The Expertise</a>
<ul>
<li><a href="#">Point1</a></li>
<li><a href="#">Point2</a></li>
<li><a href="#">Point3</a></li>
<li><a href="#">Point4</a></li>
</ul>
</li>
<li><a href="#">Develop Human Capital</a>
<ul>
<li><a href="#">Point1</a></li>
<li><a href="#">Point2</a></li>
<li><a href="#">Point3</a></li>
<li><a href="#">Point4</a></li>
</ul>
</li>
<li><a href="#">Choose Your Talent</a>
<ul>
<li><a href="#">Point1</a></li>
<li><a href="#">Point2</a></li>
<li><a href="#">Point3</a></li>
<li><a href="#">Point4</a></li>
</ul>
</li>
<li><a href="#">Outsource Your Non-Core</a>
<ul>
<li><a href="#">Point1</a></li>
<li><a href="#">Point2</a></li>
<li><a href="#">Point3</a></li>
<li><a href="#">Point4</a></li>
</ul>
</li>
<li><a href="#">Functional Excellence</a>
<ul>
<li><a href="#">Point1</a></li>
<li><a href="#">Point2</a></li>
<li><a href="#">Point3</a></li>
<li><a href="#">Point4</a></li>
</ul>
</li>
<li><a href="#">Abide By Governance</a>
<ul>
<li><a href="#">Point1</a></li>
<li><a href="#">Point2</a></li>
<li><a href="#">Point3</a></li>
<li><a href="#">Point4</a></li>
</ul>
</li>
<li><a href="#">Safety/Environmental & CSR</a>
<ul>
<li><a href="#">Point1</a></li>
<li><a href="#">Point2</a></li>
<li><a href="#">Point3</a></li>
<li><a href="#">Point4</a></li>
</ul>
</li>
</ul>
</li>
<li><a href="/blog">Blog</a></li>
<li><a href="/album/">Album</a></li>
<li><a href="/contact">Contact Us</a></li>
</ul>
</nav>
CSS Code
Here is
the simplest possible CSS code.
nav {
text-align: left;
}
nav ul ul {
display: none;
z-index: 99;
}
nav ul li:hover > ul {
display: block;
}
nav ul {
background: url(../images/nav_bg.jpg) repeat-x;
list-style: none;
position: relative;
display: inline-table;
}
nav ul:after {
content: "";
clear: both;
display: block;
}
nav ul li {
float: left;
z-index: 99;
}
nav ul li:hover {
background: #210300;
}
nav ul li:hover a {
color: #fff;
}
nav ul li a {
display: block;
padding: 13px 69px;
color: white;
text-decoration: none;
}
nav ul ul {
background: #5f6975;
border-radius: 0px;
padding: 0;
position: absolute;
top: 100%;
}
nav ul ul li {
float: none;
position: relative;
}
nav ul ul li a {
padding: 13px 40px;
color: white;
background: url(../images/nav_bg.jpg) repeat-x;
}
nav ul ul li a:hover {
background: #210300;
}
nav ul ul ul {
position: absolute;
left: 100%;
top: 0;
}
If you
want, check out the working example, here is https://jsfiddle.net/31rxbq61/embedded/result/
Hope
this helps.
Comments
Post a Comment