javascript - CSS:带有下拉菜单的粘性导航栏未显示(-溢出)?

标签 javascript html css drop-down-menu navbar

我尝试使用带有下拉菜单的粘性导航栏。 但是下拉菜单没有显示。

我想我现在玩这个太久了.. 最大的问题是:在 jsfiddle 中,下拉菜单现在完全显示了。然而,在我的电脑上,只要不添加“粘性”类,下拉菜单就会显示,然后也会变得不可见。

在 stackoverflow 中,我读到关于溢出:隐藏在导致问题的导航栏中。删除它会使下拉菜单起作用,但导航栏会消失。

-> 下拉菜单不可见 https://imgur.com/JYcswYq

-> 未显示导航栏 https://imgur.com/Gk5P6gN

我假设这里某处有错误,但无法弄清楚..

#navbar{
  overflow: hidden;
  font-size: 25px;
  background-color: #333333;
}
main{
  padding-top: 30px;
  padding-bottom: 30px;
}
.dropdown-content {
  right:0;
  display: none;
  position: absolute;
  background-color: #333333;
  min-width: 160px;
  box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2);
  z-index: 1;
  margin-top: 48px;
}

在那里你可以找到我的代码的简化部分。这里的下拉列表根本不显示。 (在我的电脑上,只要不添加粘性类,它至少会显示) https://jsfiddle.net/xncjazky/3/

希望我能得到任何关于如何使用粘性导航栏弹出下拉菜单的建议。 谢谢。

最佳答案

删除你自己发现的 overflow:hidden,并向 #navbar 选择器添加一个 height 或 min-height 属性,如下所示:

#navbar {
  //overflow: hidden;
  font-size: 25px;
  background-color: #333333;
  min-height: 48px;
}

出现此问题是因为在您的导航项中使用了 float 。

另一种无需为 #navbar 设置固定高度即可解决此问题的方法是将导航项从 float:left 更改为 display:inline - block

像这样:

#navbar {
  //overflow: hidden;
  font-size: 25px;
  background-color: #333333;
}
.lnav{
  //float: left;
  //display: block;
  display: inline-block;
  padding: 10px;
  text-align: center;
  color: #d9d9d9;
  text-decoration: none;
  cursor: pointer;
}

希望这对您有所帮助。 干杯,杰伦。

关于javascript - CSS:带有下拉菜单的粘性导航栏未显示(-溢出)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57913781/

相关文章:

javascript - jQuery 滚动到按钮单击的部分

javascript - 带有过滤器的 Angular ng-options 出现无限摘要错误

javascript - Windows CMD 中对象属性的调试限制

javascript - 单击一个按钮后禁用 2 个按钮

html - 在订阅按钮旁边对齐社交图标

javascript - 语法错误: unexpected Identifier in node js callback function

html - Twitter Bootstrap 按钮下拉 z-index 分层问题

PHP 限制输出中的行或字符

javascript - 将图标与 p 标签对齐

css - HTML 无换行与 Divs 文本换行冲突