我知道这是一个非常频繁的问题,但我一直在找到解决这个问题的确切答案。
我想要的菜单由点组成。这些点是垂直的。这些点的文本将在稍后添加,所以现在不要介意。我想要一些子菜单到这些点。该子菜单应该是水平的。最好的说明如下。
x
x x x
x
x
x
但是现在它看起来像这样:
x
x
xx
x
x
所以子菜单下面是一行,它应该放在另一个项目的顶部。希望这很清楚
我的html是:
<ul id="mainmenu">
<li id="liHome" class="active">
<a href="#item-x1y1" class="panel" rel="none" id="Home">Home</a>
</li>
<li id="liServices" class=" ">
<a href="#item-x1y2" class="panel" rel="SubMenuY2" id="Services">Services</a>
<ul style="" id="SubMenuY2" class="submenu">
<li><a href="#">Sub-item 1</a></li>
<li><a href="#">Sub-item 2</a></li>
</ul>
</li>
<li id="liEnvironment">
<a href="#item-x1y3" class="panel" rel="none" id="Environment">Environment</a>
</li>
<li id="liCareer">
<a href="#item-x1y4" class="panel" rel="none" id="Career">Career</a>
</li>
<li id="liContact">
<a href="#item-x1y5" class="panel" rel="none" id="Contact">Contact</a>
</li>
</ul
而css是:
#mainmenu {
position: fixed;
left: 20px;
top: 50%;
z-index: 999999;
margin-top:-200px;
}
#mainmenu li {
height: 40px;
position: relative;
}
#mainmenu a {
display: block;
width: 40px;
height: 40px;
background: url(Images/dotnav.png) 0 100% no-repeat;
text-indent: -10000px;
overflow: hidden;
}
#mainmenu a:hover,
#mainmenu li.active a {
background-position: 0 0;
}
.submenu
{
list-style-type: none;
position:relative;
float:left;
}
.submenu li
{
display: inline;
float:left;
position:relative
}
答案 0 :(得分:1)
我剥掉了你的一些造型东西并留下了定位的东西,所以它更清晰:
#mainmenu {
margin: 0;
padding: 0;
list-style-type: none;
}
#mainmenu li {
clear: left;
}
#mainmenu a {
display: block;
overflow: hidden;
float: left;
}
#mainmenu a:hover,
#mainmenu li.active a {
background-position: 0 0;
}
.submenu {
list-style-type: none;
float: left;
display: none;
}
#mainmenu li a:hover+.submenu, .submenu:hover {
display: block;
}
.submenu li {
display: inline;
clear: none !important;
}
.submenu li a {
float: left;
margin-left: 10px;
}
我还添加了一些代码来处理鼠标悬停。