【发布时间】:2017-06-15 00:44:01
【问题描述】:
我正在尝试在 css 中创建一个响应式导航栏。当屏幕宽度足够大时,我想要文本,当它低于某个宽度时,我想要一个下拉框。响应能力开始发挥作用,但悬停功能不起作用。悬停时我只想要一个下拉菜单
这里是 jsfiddle:https://jsfiddle.net/cjbruin/rnmg5gjb/
还有代码
HTML
<div class="topnav" id="myTopnav">
<a href="#">Home</a>
<a href="#">News</a>
<a href="#">About</a>
<a href="#">Contact</a>
<a href="javascript:void(0);" style="font-size:15px" class="icon">☰</a>
</div>
CSS:
.topnav {
overflow: hidden;
}
.topnav a {
float: right;
display: block;
text-align: center;
padding: 14px 16px;
text-decoration: none;
}
.topnav a:hover {
color: black;
}
.topnav .icon {
display: none;
}
@media screen and (max-width: 800px) {
.topnav a {
display: none;
}
.topnav a.icon {
float: right;
display: block;
}
.icon:hover .topnav a {
display: block;
color: black;
}
}
【问题讨论】:
-
但是如果您使用悬停,您将无法保持其活动状态,您可能需要寻找点击。这是在做你想做的事吗? jsfiddle.net/rnmg5gjb/4
-
当您将鼠标悬停在图标上时,目前您除了将其更改为黑色之外什么都不做,并且悬停的“显示:块”什么也不做。您将要显示另一个 div,其中包含悬停时出现的下拉菜单的文本和样式
-
很难说出你在问什么,但
.icon:hover .topnav a不是正确的选择器。没有.icon的后代.topnav。您需要将悬停状态添加到.topnav。这能达到你想要完成的目标吗? jsfiddle.net/yswdtg0e -
Joseph Merikle 是的,这就是我想要做的事情
-
John Batts 谢谢,我会试试的
标签: html css responsive-design