html - 帮助菜单的CSS

标签 html css

我试图制作一个垂直菜单,在悬停时产生一个水平菜单栏。到目前为止,我已经有点让它工作了,但是第一个 li 和 sub li 之间有一个差距。

例如,我希望它看起来像这样:

x
xxxx
x

相反,它看起来像这样:

x
x xxx
x

这是我的 html:

    <ul id="mainmenu">
    <li><a href="#">Top 1</a>
        <ul class="submenu">
            <li><a href="">sub 11</a>
            <li><a href="">sub 12</a></li>
        </ul>
    </li>
    <li><a href="#">Top 2</a>
        <ul class="submenu">
            <li><a href="">sub 21</a>
            <li><a href="">sub 22</a></li>
        </ul>
    </li>
</ul>

这是我的CSS:

    #mainmenu {
margin: 0;
padding: 0;
list-style-type: none;
    }
    #mainmenu li {
clear: left;
    }
    #mainmenu a {
display: block;
overflow: hidden;
float: left;
background-color: white;
border: 1px solid black;
color: black;
font-weight: bold;
text-decoration: none;
width: 10em;
text-align: center;
margin:0;
    }
    .submenu {
list-style-type: none; 
float: left;
display: none;
    }
    #mainmenu li a:hover {
display: block;
color: white;
background-color: black;
    } 
    #mainmenu li a:hover+.submenu, .submenu:hover{
display: block;

display: inline;
    }
    .submenu li {
float: left;
clear: none !important;
    }
    .submenu li a:hover {
color: white;
background-color: black;
    }

最佳答案

你需要添加这个:

.submenu {
    margin: 0;
    padding: 0
}

您已经为 ul#mainmenu 完成了此操作, 但你忘了为 ul.submenu 做这件事

此外,请检查您的 HTML。你错过了几个 </li> .对于 HTML5 文档类型,您允许省略它们,但如果您这样做(对人类而言)会造成混淆。

关于html - 帮助菜单的CSS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7069649/

相关文章:

javascript - 如何让滚动条在一段时间后自动移动(JavaScript)

html - 使图像位置相对于页面顶部

css - 删除 nav navbar-nav 下方的 Bootstrap 空白

html - 绝对定位破坏了我的 css 轮播

html - CSS 中的标签可以有多层继承吗?如果没有,那么有没有一种方法可以同样高效?

html - 使用 bootstrap 调整大小时如何在同一行上保留多于 1 个图像?

javascript - html 文件无法从我的模板文件夹中运行

jquery - ipad 禁用没有 jquery 的选择选项

javascript - 在谷歌地图上旋转标记

javascript - 如何将固定导航栏保持在页面元素的前面而不是后面