html - 导航栏不能仅在站点的一个部分中单击

标签 html css flexbox navbar

我希望导航栏保持在固定位置。它工作正常,但在我的展示部分中无法单击链接。一旦向下滚动,它就会再次变为可点击状态。我需要帮助来理解为什么会这样

 <nav id="nav-bar">
      <h2 class="logo">
      <span class="txt-primary"><i class="far fa-moon"></i></span> | MMM
    </h2>
      <ul>
        <li class="nav-link"><a href="#about">About</a></li>
        <li class="nav-link"><a href="#service">Services</a></li>
        <li class="nav-link"><a href="#videos">Videos</a></li>
        <li class="nav-link"><a href="#contact">Contact</a></li>
      </ul>
    </nav>

CSS:

#nav-bar {
  display: flex;
  position: fixed;
  width: 100%;
  background: rgba(60,3,56,0.8);
  color: #dbd8e5;
  justify-content: space-between;
  padding: 0.4rem;
}

#nav-bar ul {
  display: flex;
  align-items: center;
}

#nav-bar ul li a {
  padding: 0.55rem;
  color: #7c72a0;
}
#nav-bar ul li a:hover {
  background: #5f0d45;
  color: #dbd8e5;
  padding: 0.75rem;
}

最佳答案

z-index 添加到您的 #nav-bar 以将其堆叠到比“展示部分”更高的位置。

z-index: 99999;

任何具有 position 值而不是默认值 static 的元素都可以堆叠在 z 轴上(您的导航是 position: fixed;)。较高的数字在最上面。

您可以设置一个非常高的无意义值,如 99999,但我建议给它一个有意义且您可以管理的数字。找出“展示区”的 z-index 并将其设置得比那个高。如果没有设置 z-index,那么一个简单的 z-index: 1; 就可以工作(但感觉它是一个导航,数字越大越好)。

如果您使用 sass 或更少,您可以通过为您的站点 z-index 设置变量来更轻松地进行跟踪。

此外,请阅读 the stacking context ,因为它比设置更高的数字更复杂。

祝你好运!

关于html - 导航栏不能仅在站点的一个部分中单击,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55308171/

相关文章:

html - 并排显示表格的行

Javascript onClick图像更改

html - 垂直均匀分布 DIV

html - Bootstrap 根据屏幕大小显示行中的元素数

Javascript 函数未被识别 : Uncaught ReferenceError: change is not defined

javascript - 使用 <button> 标签选择性提交表单不起作用

javascript - 如何根据从json数组接收的动态值显示div内容?

python - Flask 渲染以前版本的 CSS

css - 删除 CSS 菜单中菜单项之间空间的背景色

javascript - flex 元素是否有可能与它们上方的元素紧密对齐?