css - 与特定的导航菜单设计作斗争

标签 css

我正在尝试以特定样式制作导航菜单,它需要是一堆方形按钮/列表项,然后当您将鼠标悬停在某个元素上时,该元素后面的背景会改变颜色,上方有一个合适的高度元素和下拉列表后面,如下图所示。

我的问题是,我很好奇我是否以最有效的方式执行此操作,并且当我将鼠标悬停在初始元素上时,它正在工作,但随后您转到下拉元素之一,主/父元素消失进入后台。

代码:

body {
  background-color: #00aeef;
}
.navBG {
  background-color: #fff;
}
nav {
  padding-top: 100px;
  padding-left: 100px;
}
ul {
  list-style-type: none;
  padding: 0;
  margin: 0;
  display: inline-block;
  text-align: center;
}
li {
  display: inline-block;
  display: inline;
  float: left;
  background-color: #00aeef;
  border: solid 4px #fff;
  width: 150px;
}
li a {
  display: block;
  padding: 10px 5px;
  color: #fff;
  text-align: center;
}
li a:hover {
  color: #fff;
  border: solid 4px #00ee98;
  border-top: solid 100px #00ee98;
  margin-top: -100px;
}
.droplinks {
  position: absolute;
  background-color: #00aeef;
  min-width: 150px;
  display: none;
  margin-left: -2px;
}
.droplinks a {
  padding: 10px;
  display: block;
  border: solid 2px #00ee98;
}
.droplinks a:hover {
  color: #fff;
}
.dropbutton:hover .droplinks {
  display: block;
}
<div class="container-fluid navBG">
  <nav>
    <ul>
      <li><a href="">Home</a>
      </li>
      <li class="dropbutton"><a href="">Products</a>
        <div class="droplinks">
          <a href="">Widgets</a>
          <a href="">Cogs</a>
          <a href="">Gears</a>
        </div>
      </li>
      <li class="dropbutton">
        <a href="">Services</a>
        <div class="droplinks">
          <a href="">Handshakes</a>
          <a href="">Winks</a>
          <a href="">Smiles</a>
        </div>
      </li>
      <li><a href="">Shop</a>
      </li>
      <li><a href="">Contact</a>
      </li>
    </ul>
  </nav>
</div>

然后将鼠标悬停在菜单项上,它会更改为此;

On Hover

但是,当我转到子菜单项时,顶级元素会出现困惑,如上面的示例所示。可以解决这个问题吗?

最佳答案

看看这个fiddle , 以下是如何在将鼠标悬停在菜单项上时正确显示子菜单:

li:hover .droplinks{ 
  display: block;
}

关于css - 与特定的导航菜单设计作斗争,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40608824/

相关文章:

html - 盒子阴影无法正常工作

css - 如何在 Web 应用程序中使用 SVG Logo ?

html - 具有圆形路径的图像上的 CSS 剪辑

css - 根据子类选择元素

html - Bootstrap 4 img-responsive 一排

css 更改大小会通过 move 其余的 div 来影响

html - CSS :visited background image not applying?

css - 为什么我的复选框在 bootstrap 3.2 中不正确但在 2.3 中很好

html - 背景图片未覆盖整个页面

php - 如何在php中只显示第一张图片