Reputation: 43
i am learning css and i don't know center a menu and submenu. i am using margin: auto or margin-left and margin-right to auto but it is not working. Any help would be appreciated. Thanks
HTML
<div id="menu">
<ul id="nav">
<li><a href="#">item1</a>
<ul>
<li><a href="">subitem1</a></li>
<li><a href="">subitem2</a></li>
<li><a href="">subitem3</a></li>
</ul>
</li>
<li><a href="#">item2</a>
<ul>
<li><a href="">subitem1</a></li>
<li><a href="">subitem2</a></li>
<li><a href="">subitem3</a></li>
<li><a href="">subitem4</a></li>
<li><a href="">subitem5</a></li>
<li><a href="">subitem6</a></li>
</ul>
</li>
</ul>
</div>
CSS
#menu {
clear: none;
width: 960px;
}
ul#nav {
width: 960px;
margin: 0;
padding: 0;
list-style: none;
}
ul#nav li {
float: left;
display: inline-block;
}
ul#nav li a {
line-height: 40px;
padding: 0 30px;
text-align: center;
}
ul#nav ul {
display: none;
}
ul#nav li:hover > ul {
position: absolute;
display: block;
margin: auto;
width: 100%;
}
fiddle http://jsfiddle.net/davidgonzalo/ZzaDY
Upvotes: 2
Views: 2098
Reputation: 1220
Is this your desired outcome? http://jsfiddle.net/shaunp/ZzaDY/1/
(Keep in mind the fiddle window is small so you may have a scrollbar - the content is indeed centered)
text-align:center;
to ul#nav
float: left;
from ul#nav li
position:absolute;
from ul#nav li:hover > ul
#menu {
clear: none;
width: 960px;
}
ul#nav {
width: 960px;
margin: 0;
padding: 0;
list-style: none;
text-align:center;
}
ul#nav li {
display: inline-block;
}
ul#nav li a {
line-height: 40px;
padding: 0 30px;
}
ul#nav ul {
display: none;
}
ul#nav li:hover > ul {
display: block;
margin: auto;
width: 100%;
}
Upvotes: 1
Reputation: 3491
Use:
ul, li {
text-align:center;
}
li
{
margin-left: -40px;
}
This will center text in menu and sub-menu.
Upvotes: 0