我想将“帮助”链接转换为悬停时的下拉菜单。我是否必须将其转换为无序列表,还是可以使用现有结构?提前致谢。
<div class="navbar-project">
<a href="#">Details</a>
<a href="#">Forms</a>
<a href="#">Documents</a>
<a href="#">Help</a>
</div>
CSS
.navbar-project {
width: 100%;
background-color: #fff;
overflow: auto;
margin-top: 25px;
margin-bottom: 25px;
}
.navbar-project a {
float: left;
padding: 12px;
color: #000;
text-decoration: none;
font-size: 20px;
width: 25%; /* Four links of equal widths */
text-align: center;
border-bottom: 3px solid white;
}
.navbar-project a:hover {
border-bottom: 3px solid black;
}
.navbar-project a.active {
background-color: #fff;
border-bottom: 3px solid red;
}
@media screen and (max-width: 500px) {
.navbar-project a {
float: none;
display: block;
width: 100%;
text-align: left;
}
}
答案 0 :(得分:0)
处理下拉列表的最佳方法是将其放入ul中,您可以在现有代码中采用以下代码
<nav role="navigation">
<ul>
<li><a href="#">Button One</a></li>
<li><a href="#">Button Two</a>
<ul class="dropdown">
<li><a href="#">Submenu-1</a></li>
<li><a href="#">Submenu-2</a></li>
<li><a href="#">Submenu-3</a></li>
</ul>
</li>
<li><a href="#">Button Three</a></li>
</ul>
</nav>
和您的CSS
li {
display: block;
transition-duration: 0.5s;
}
li:hover {
cursor: pointer;
}
ul li ul {
visibility: hidden;
opacity: 0;
position: absolute;
transition: all 0.5s ease;
margin-top: 1rem;
left: 0;
display: none;
}
ul li:hover > ul,
ul li ul:hover {
visibility: visible;
opacity: 1;
display: block;
}
ul li ul li {
clear: both;
width: 100%;
}
答案 1 :(得分:0)
您只需要打开ul
中的“帮助”项,创建li
项,然后使用display: none;
将其隐藏即可,之后您可以在其中使用hover
ul
,并指定您希望使用li
显示display: block;
项。
.navbar-project {
width: 100%;
background-color: #fff;
overflow: auto;
margin-top: 25px;
margin-bottom: 25px;
}
.navbar-project a {
float: left;
padding: 12px;
color: #000;
text-decoration: none;
font-size: 20px;
width: 25%; /* Four links of equal widths */
text-align: center;
border-bottom: 3px solid white;
}
.navbar-project a:hover {
border-bottom: 3px solid black;
}
.navbar-project a.active {
background-color: #fff;
border-bottom: 3px solid red;
}
.navbar-project ul{
display: flex;
flex-direction: column;
}
.navbar-project ul li{
display: none;
}
.navbar-project ul:hover li{
display: block;
}
@media screen and (max-width: 500px) {
.navbar-project a {
float: none;
display: block;
width: 100%;
text-align: left;
}
}
<div class="navbar-project">
<a href="#">Details</a>
<a href="#">Forms</a>
<a href="#">Documents</a>
<ul><a href="#">Help</a>
<li>Item 1</li>
<li>Item 2</li>
<li>Item 3</li>
</ul>
</div>
注意::我相信出于语义的考虑,始终使用
ul
或 您ol
中的nav menu
就像 Kai 在另一条评论中解释的那样, 正如我演示的那样,需要在第一个列表中创建另一个列表。
编辑:我做了一些修改,这次可以使用25%的宽度,this is the example