我正在尝试使用css在网页上的水平菜单上创建一个垂直菜单。问题是bg只显示在第一项后面。我可以通过固定大小来解决这个问题,但这看起来不太好。
我正在使用以下HTML代码:
<div id="topmenu">
<ul>
<li><a href="#">Categories</a>
<ul>
<li><a href="#">Patches</a></li>
<li><a href="#">Scripts</a></li>
<li><a href="#">RTE Tools</a></li>
<li><a href="#">Textures</a></li>
<li><a href="#">Utilities</a></li>
</ul>
</li>
<li><a href="#">Login</a></li>
<li><a href="#">Register</a></li>
</ul>
</div>
我认为这个问题属于#topmenu ul ul ..
这是#topmenu的所有css:
#topmenu
{
font-family: Arial, Helvetica, sans-serif;
height: 40px;
width: 500px;
float: right;
z-index: 1000;
}
#topmenu ul
{
float: right;
list-style-type: none;
line-height: 36px;
height: 36px;
margin: 0;
padding: 0;
}
#topmenu ul li
{
position: relative;
display: inline;
float: left;
padding-right: 15px;
}
#topmenu ul li a:hover
{
color: #04acec;
}
#topmenu ul li a
{
text-decoration: none;
color:#444;
}
#topmenu ul ul
{
background-color: #F8F8F8;
border: 1px solid #000;
-moz-border-radius: 5px;
border-radius: 5px;
box-shadow: 5px 5px 5px #888888;
display: none; /* hide it */
position: absolute;
top:2.3em;
left: 0;
width:10em;
list-style-type: none;
}
#topmenu ul ul li
{
padding-left: 15px;
}
#topmenu ul ul li:first-child a:after{
content: '';
position: absolute;
left: 30px;
top: -8px;
width: 0;
height: 0;
border-left: 5px solid transparent;
border-right: 5px solid transparent;
border-bottom: 8px solid #444;
}
#topmenu ul ul li:first-child a:hover:after{
border-bottom-color: #04acec;
}
#topmenu ul li:hover ul,
#topmenu ul li.hover ul
{
display: inline-block;
}
我真的很感激帮助,我整夜都在搞乱它。
答案 0 :(得分:1)
从height: 36px;
删除#topmenu ul
会获得您要查找的结果。如果您要设置第一个 ul
的高度,则应使用>
这样的子选择器#topmenu > ul
。