css - 屏幕左侧显示下拉菜单

标签 css drop-down-menu menu position dropdown

我一直在尝试下拉菜单。现在我的菜单看起来完全像我想要的那样,但我的下拉菜单显示在屏幕左侧,而不是直接在其父项下方。

示例:

.nav {
  background-color: rgba(0, 0, 0, .8);
  height: 56px;
  line-height: 56px;
  width: 100%;
  position: fixed;
  top: 0;
  z-index: 1000;
}
ul {
  text-align: center;
  margin: 0;
  padding: 0;
  transition: .2s ease-in-out;
}
ul li {
  display: inline;
  transition: .2s ease-in-out;
}
ul li a {
  background-color: red;
  display: inline-block;
  padding: 0 16px;
}
ul li ul {
  text-align: left;
  opacity: 0;
  position: absolute;
  visibility: hidden;
}
ul li:hover ul {
  opacity: 1;
  visibility: visible;
}
ul li ul li {
  color: rgba(0, 0, 0, .8);
  display: block;
}
<div class="nav">
  <ul>
    <li><a href="">Home</a>
    </li>
    <li><a href="">Page1</a>
      <ul>
        <li><a href="">Page 1.1</a>
        </li>
        <li><a href="">Page 1.2</a>
        </li>
        <li><a href="">Page 1.3</a>
        </li>
        <li><a href="">Page 1.4</a>
        </li>
      </ul>
    </li>
    <li><a href="">Page2</a>
      <ul>
        <li><a href="">Page 2.1</a>
        </li>
        <li><a href="">Page 2.2</a>
        </li>
      </ul>
    </li>
    <li><a href="">About</a>
    </li>
  </ul>
</div>

悬停时,ul li ul 应该在 ul li 下可见,但 ul li ul 显示在屏幕左侧。我已经尝试了所有元素的不同位置,但我无法弄清楚。

预期结果: enter image description here

最佳答案

只需将其添加到您的 CSS 中即可:

ul li {
  position: relative; 
}

absolute 的父元素定位元素必须有 position static 以外的值(这是默认值,即使它没有包含在 CSS 中)

编辑:此父元素必须是 block 元素(您的 <li> 当前是内联元素),因此您还必须添加:

ul li {
      position: relative; 
      display: inline-block;
    }

另请参阅更新的代码笔:http://codepen.io/anon/pen/zrqyJr

关于css - 屏幕左侧显示下拉菜单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34370881/

相关文章:

html - 为什么这个 html/css 没有做我想要的

javascript - 显示时如何将动画应用于元素?

html - 使用 html、CSS 自动弹出关闭按钮

jquery - css Carousel Bootstrap "da-dots"编辑

html - 如何在外部点击时关闭悬停下拉菜单?

javascript - 为什么打包的 Electron 应用程序会由于 Menu.getApplicationMenu() 在使用 electro 运行时返回 null 而失败。还好吗?

javascript - 在更高的数字上显示元素

javascript - 仅使用 JavaScript 在导航栏外部单击后关闭下拉菜单?

jquery-ui - jQuery UI SelectMenu Dropdown - 打开 UP 而不是 DOWN

wpf - 在 WPF 中的菜单中放置分割线