Reputation: 2427
I'm trying to create a menu bar for my site using CSS and JQueryUI, specifically using JQueryUI's menu widget. It's seems to be working for the most part but for some reason the menu shows up horizontal whereas I want it to be vertical. I'm trying to learn some more CSS and I got the basics for the menubar from a few tutorials online.
I've thrown my code into a fiddle here
HTML
<div class="ui-widget-header">
<ul class="menu">
<li><a href="#">Test</a>
</li>
<li> <a href="#">Test2</a>
<ul>
<li><a href="#">Sub item</a>
</li>
<li><a href="#">Sub item</a>
</li>
<li> <a href="#">Sub item</a>
<ul>
<li><a href="#">Sub item</a>
</li>
<li><a href="#">Sub item</a>
</li>
<li><a href="#">Sub item</a>
</li>
</ul>
</li>
</ul>
</li>
</ul>
CSS
ul.menu {
text-align: left;
display: inline;
margin: 0;
padding: 15px 4px 17px 0;
list-style: none;
}
ul.menu li {
float: left;
margin: 0px 10px 0px 10px;
}
ul.menu li.ui-state-hover {
margin: -1px 9px -1px 9px;
}
.menu li a {
display: block;
}
.menu li ul {
display: none;
position: absolute;
}
.menu li ul li {
display: block;
}
li.ui-menu-item.ui-state-hover {
margin: 0px;
}
JS
$(function () {
$(".menu li").hover(
function () {
$(this).addClass("ui-state-hover");
$("ul", $(this)).show();
},
function () {
$(this).removeClass("ui-state-hover");
$("ul", $(this)).hide();
});
$(".menu li ul").each(function () {
$(this).menu();
});
});
Any help would be greatly appreciated :)
Upvotes: 0
Views: 1023
Reputation: 196
you have implemented it correctly there is a slight change in the CSS
ul.menu {
text-align: left;
display: inline;
margin: 0;
padding: 15px 4px 17px 0;
list-style: none;
}
ul.menu li {
margin: 0px 10px 0px 10px;
padding:10px;
}
ul.menu li.ui-state-hover {
margin: -1px 9px -1px 9px;
}
.menu li a {
display: block;
}
.menu li ul {
display: none;
position: absolute;
}
.menu li ul li {
display: block;
}
li.ui-menu-item.ui-state-hover {
margin: 0px;
}
check this :- http://jsfiddle.net/uiupdates/76gm29tu/
Upvotes: 0
Reputation: 13988
Apply float:none
for your first level menus like below.
.menu li ul li {
display: block;
float:none;
}
Upvotes: 1