【问题标题】:How to fix the navbar hover issue CSS如何修复导航栏悬停问题 CSS
【发布时间】:2019-04-05 03:42:04
【问题描述】:

我正在使用 bootstrap 4 中的导航栏。当我将鼠标悬停在导航链接上时遇到问题。我在悬停时为导航链接添加了边框底部。但是当悬停时,整个导航栏都会移动。我已经粘贴了我到目前为止所做的事情。

<nav class="navbar navbar-expand-lg navbar-dark bg-dark">
  <a class="navbar-brand" href="#">
    <img src="#" />
  </a>
  <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
    <span class="navbar-toggler-icon"></span>
  </button>

  <div class="collapse navbar-collapse" id="navbarSupportedContent">
    <ul class="navbar-nav mr-auto">
      <li class="nav-item active">
        <a class="nav-link" href="#">First item</a>
      </li>
      <li class="nav-item">
        <a class="nav-link" href="#">Second Item</a>
      </li>
      <li class="nav-item dropdown">
        <a class="nav-link dropdown-toggle" href="#" id="navbarDropdown" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
          Dropdown
        </a>
        <div class="dropdown-menu" aria-labelledby="navbarDropdown">
          <a class="dropdown-item" href="#">Action</a>
          <a class="dropdown-item" href="#">Another action</a>
          <div class="dropdown-divider"></div>
          <a class="dropdown-item" href="#">Something else here</a>
        </div>
      </li>
    </ul>
    <div class="my-2 my-lg-0">
    </div>
  </div>
</nav>

<style>
.navbar-dark .navbar-nav .nav-link:hover, 
.navbar-dark .navbar-nav .nav-link:focus {
  color: rgba(255, 255, 255, 0.75);
  border-bottom: 2px solid #fff;
}

</style>

【问题讨论】:

    标签: css navigation navbar


    【解决方案1】:

    它移动的原因是因为你没有边框,然后突然在悬停时添加了一个 2px 边框。解决此问题的方法是在常规/未悬停状态中添加 2px 透明边框。

    .navbar-dark .navbar-nav .nav-link {
      border-bottom: 2px solid transparent;
    }
    

    【讨论】:

    • @tkamath99 没问题!您可以按我帖子左侧的复选标记以显示它是正确的答案。如果其他人遇到类似的问题,它将更容易找到解决方案。祝你好运!
    • 为避免任意透明边框,您可以绝对定位具有边框的伪元素(例如,::after),仅当链接悬停时(例如,.nav-link:hover::after,带有@ 987654324@ 和链接本身的position: relative)。这可以防止添加 2px 的任意空间并且看起来很干净。
    • 有趣!有时间我会自己试试的。感谢您的意见!
    • @dnmch 你能多解释一下吗?谢谢!
    猜你喜欢
    • 2017-06-11
    • 2017-11-12
    • 2021-09-08
    • 2011-12-01
    • 1970-01-01
    • 2020-02-07
    • 2017-09-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多