html - 悬停和列表上的下拉菜单

标签 html css menu html-lists navbar

我目前正在尝试使用列表创建垂直导航栏,但是我遇到了问题,当我将鼠标悬停在 ul 上时,li 中的所有下拉菜单都会显示或根本不显示。有解决办法吗?

HTML:

<body>
    <div class="navbar">
        <ul>
            <li>title</li>
            <li>main text</li>
                <div class="dropdown-content">
                    <a href="#">text</a>
                    <a href="#">text</a>
                    <a href="#">text</a>
                </div>
            <li>main text</li>
                <div class="dropdown-content">
                    <a href="#">text</a>
                    <a href="#">text</a>
                    <a href="#">text</a>
                </div>
            <li>main text</li>
                <div class="dropdown-content">
                    <a href="#">text</a>
                    <a href="#">text</a>
                    <a href="#">text</a>
                </div>
        </ul>
    </div>
</body>

CSS:

.dropdown {
    position: relative;
    display: inline-block;
}

.dropdown-content {
    display: none;
    position: absolute;
    background-color: #f9f9f9;
    min-width: 160px;
    border-radius: 15px;
}

.dropdown-content a {
    padding: 12px 16px;
    text-decoration: none;
    display: block;
}

.dropdown-content a:hover {
    background-color: #f1f1f1;
    border-radius: 15px;
}

.navbar ul {
    list-style-type: none;
    margin: 0;
    padding: 0;
    width: 200px;
    border: 1px solid #000000;
    float: left;
    border-radius: 25px;
    background-color: #9cddf0;
    height: 500px;
    overflow: hidden;
    line-height: 35px;
}

.navbar ul li {
    display: block;
    color: #000000;
    padding: 0px;
    text-decoration: none;
    text-align: left;
    padding-left: 5px;
}

.navbar ul:hover .dropdown-content {
    display: block;
}

在 CSS 的最后三行,如果我将其更改为 .navbar ul li:hover .dropdowncontent,下拉菜单根本不会显示。

在 HTML 中,如果我将下拉内容放在 li 中,接下来应该出现在列表中的两个内容就会超出框。

提前致谢。

最佳答案

您没有为您的内容元素提供任何类型的上下文。现在,在编写您的 CSS 时,所有下拉菜单都将在悬停时可见,因为您明确表示要显示所有下拉菜单。

所以基本上您需要做的是将您的内容元素放在一个 li 中并为其悬停选择器设置样式。顺便说一句,仅供将来引用,无序列表只能有 li 作为他们的 child ,否则它不是有效的 HTML。

https://jsfiddle.net/eo0shney/

<div class="navbar">
<ul>
<li>title</li>
<li>
  main text
  <div class="dropdown-content">
    <a href="#">text</a>
    <a href="#">text</a>
    <a href="#">text</a>
  </div>
</li>
<li>
  main text
  <div class="dropdown-content">
    <a href="#">text</a>
    <a href="#">text</a>
    <a href="#">text</a>
  </div>
</li>
<li>
  main text
  <div class="dropdown-content">
    <a href="#">text</a>
    <a href="#">text</a>
    <a href="#">text</a>
  </div>
</li>

关于html - 悬停和列表上的下拉菜单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37100718/

相关文章:

ruby-on-rails - 事件管理员 : How to customize the main menu (at the top of the page)?

php - 从复选框插入值到MySQL

javascript - 如何使用 javascript 从 DIV 中获取选定的文本(适用于 IE7-8)?

css - HTML:表格行突出显示

javascript - 防止多次点击,直到 .toggle() 生效为止

android - 从 ListFragment 获取菜单

php - 换行符 php 和 html 不工作

asp.net - 选择 <td> 标签中的所有图像并禁用它们

css - 内框阴影仅 3 边和三 Angular 形 - 表单进度条

javascript - 如何制作悬停时显示的导航