【问题标题】:Simple dropdown menu with CSS in a navba导航栏中带有 CSS 的简单下拉菜单
【发布时间】:2017-09-07 00:00:36
【问题描述】:

我正在尝试在具有多个链接的导航栏中创建一个简单的下拉菜单(只有 CSS),问题是下拉菜单将显示每个链接,而不仅仅是所需的链接。代码如下:

HTML 和 CSS

ul {
  list-style: none;
}

.topNav {
  background-color: #ff66b3;
  overflow: hidden;
  box-shadow: 0 0 10px rgba(0, 0, 0, 0.5);
  position: relative;
}

.topNav a {
  float: left;
  display: block;
  color: #f2f2f2;
  text-align: center;
  padding: 14px 8px;
  text-decoration: none;
  font-size: 14px;
}

.topNav a:hover {
  background-color: #ffb3d9;
  color: black;
}

.dropDown {
  display: none;
  position: absolute;
  z-index: 1;
  min-width: 160px;
}

.dropDown a {
  color: black;
  padding: 12px 16px;
  text-decoration: none;
  display: block;
}

.topNav .mainLink:hover .dropDown {
  display: block;
}
<div class="topNav" id="myTopnav">
  <a class="mainLink" id="menuIcon" href="#home">&#9776</a>
  <a class="mainLink" href="#home">NerdBook</a>
  <div class="dropDown">
    <a href="#news">News</a>
    <a href="#contact">Contact</a>
    <a href="#about">About</a>
  </div>
</div>

下拉菜单必须仅显示在“menuIcon”链接上。

【问题讨论】:

  • .mainLink:hover 更改为 #menuIcon:hover ...但实际上当我将其放入 sn-p 时您的代码不起作用,下拉菜单不是您的链接的子项将其更改为 @ 987654325@
  • @DaniP 已完成,但无法正常工作。
  • @DaniP 不错,这有点用,但是当您移动指针时,菜单会淡出,而且它是 lnline 而不是下拉菜单

标签: html css drop-down-menu menu dropdown


【解决方案1】:

您已经在&lt;a&gt; 标记上拥有一个ID,您想触发:hover,因此将其用作参考选择器。此外,您的代码也不起作用,因为 .dropDown 不是您的链接的孩子,将其更改为与兄弟姐妹匹配:

#menuIcon:hover ~ .dropDown

ul {
  list-style: none;
}
.topNav {
  background-color: #ff66b3;
  box-shadow: 0 0 10px rgba(0, 0, 0, 0.5);
  position: relative;
}
.topNav:after {
  content:"";
  display:table;
  clear:both;
}
.topNav a {
  float: left;
  display: block;
  color: #f2f2f2;
  text-align: center;
  padding: 14px 8px;
  text-decoration: none;
  font-size: 14px;
}
.topNav a:hover {
  background-color: #ffb3d9;
  color: black;
}
.dropDown {
  background:#e1e1e1;
  display: none;
  position: absolute;
  top:100%;
  z-index: 1;
  min-width: 160px;
}

.dropDown a {
  float:none;
  color: black;
  padding: 12px 16px;
  text-decoration: none;
  display: block;
}

#menuIcon:hover ~ .dropDown, .dropDown:hover {
  display: block;
}
<div class="topNav" id="myTopnav">
  <a class="mainLink" id="menuIcon" href="#home">&#9776</a>
  <a class="mainLink" href="#home">NerdBook</a>
  <div class="dropDown">
    <a href="#news">News</a>
    <a href="#contact">Contact</a>
    <a href="#about">About</a>
  </div>
</div>

【讨论】:

  • 我已经回答你了
  • 是的 @Simone 检查现在编辑的 sn-p 正在对您的 CSS 进行细微更改
  • 好吧,这比我想要的更有可能。但链接仍然是内联的,不像下拉菜单。
  • @Simone 因为您将所有 a 标签都浮动在 div 中,只需将其更改为 none 将 onse 浮动在下拉列表中,检查已编辑的 sn-p .... 我使用灰色背景只是为了显示
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-07-24
  • 2017-06-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多