html - 如何修复下拉菜单不工作的情况
问题描述
我正在尝试使用 HTML 和 CSS 创建一个垂直下拉菜单,但我的下拉菜单不起作用。我想知道我哪里出错了。我已经尝试了每件事,但我只是没有找到我要去的地方
#sidenav {
margin-top: 2.5rem;
display: none;
flex-direction: column;
width: 200px;
height: 100%;
max-width: 200px;
box-sizing: border-box;
background: #454545;
font-size: 18px;
overflow-y: scroll;
overflow-x: hidden;
position: fixed;
}
#sidenav input,
#sidenav li,
#sidenav {
box-sizing: border-box;
}
.dropdown-bt {
position: relative;
}
.dropdown-content {
display: none;
position: absolute;
}
.dropdown-bt:hover .dropdown-content {
display: block;
}
<section id='sidenav'>
<input type="text" placeholder="search..." id='mysearch' onkeyup="filterSearch()">
<li><a href="#">Item 1</a></li>
<li><a href="#">Item 2</a></li>
<li class="dropdown-bt"><a href="#">Dropdown</a>
<div class="dropdown-content" style="display:none;">
<li><a href="#">-test 1</a></li>
<li><a href="#">-test 2</a></li>
<li><a href="#">-test 3</a></li>
<li><a href="#">-test 4</a></li>
<li><a href="#">-test 5</a></li>
<li><a href="#">-test 6</a></li>
</div>
</li>
<li><a href="#">Item 7</a></li>
</section>
解决方案
首先制作.dropdown-content
为无序列表,而不是 div。删除style="display:none;"
下拉菜单,您已经通过 css class 隐藏它.dropdown-content
。然后制作position: relative;
下拉定位的列表项。
.dropdown-content li {
position: relative;
}
而且您不需要此处的下拉链接。
<li class="dropdown-bt">Dropdown
<ul class="dropdown-content">
<li><a href="#">-test 1</a></li>
<li><a href="#">-test 2</a></li>
<li><a href="#">-test 3</a></li>
<li><a href="#">-test 4</a></li>
<li><a href="#">-test 5</a></li>
<li><a href="#">-test 6</a></li>
</ul>
</li>
推荐阅读
- python - 在Django中,获取各种条件的多个Counts
- r - 使用 R 对大型数据框中的列进行重新排序的便捷方法
- ios - iOS 13 Safari 链接预览如何工作?
- asp.net-core-mvc - 如何在单击时将按钮值从“buttonX”更改为“clicked”?
- python - 为什么我得到变量名作为输出而不是它的值?
- python - relu 函数神经网络输出 0 或 1
- scala - Apache Spark 性能调优
- php - 将产品库中的随机图像显示为 Woocommerce 商店的主要产品图像
- dynamics-crm - Dynamics 365 Webresource 中的 ReferenceError
- django - 使用 Django,如何使用列从基于 FK 的对象中过滤并获取不同的值