ul bg没有显示所有李

时间:2013-07-15 02:17:21

标签: css

我正在尝试使用css在网页上的水平菜单上创建一个垂直菜单。问题是bg只显示在第一项后面。我可以通过固定大小来解决这个问题,但这看起来不太好。

my problem

我正在使用以下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;
}

我真的很感激帮助,我整夜都在搞乱它。

1 个答案:

答案 0 :(得分:1)

height: 36px;删除#topmenu ul会获得您要查找的结果。如果您要设置第一个 ul的高度,则应使用>这样的子选择器#topmenu > ul