html - CSS li 元素相互堆叠

标签 html css html-lists

我正在构建一个移动菜单,我的列表项试图意外地堆叠在一起。我想我可以以某种方式设置到顶部的相同距离或类似的距离,因为它们彼此堆叠但似乎无法找到并解决问题。

CSS:

nav#nav-mobile {
    position: relative;            
    display: none; }
nav#nav-mobile ul#vertnav li{
    display: none;
    list-style-type: none;
    position: absolute;
    left: 0;
    right: 0;
    margin-left: auto;
    margin-right: auto;
    text-align: center;
    z-index: 99;
    opacity: 0.8;
    background-color: #000; }
nav#nav-mobile ul#vertnav li ul {
    display: none;
 }
nav#nav-mobile li{
    display: block;
    padding: 5px 0;
    margin: 0 5px;
    border-bottom: solid 1px #000; }
nav#nav-mobile li:last-child {
    border-bottom: none; }
nav#nav-mobile a {
    display: block;
    color: white;
    padding: 10px 30px; }
nav#nav-mobile a:hover {
    background-color: #000;
    color: #fff; }
#nav-trigger {
    display: block; }
.topnav {
    display: none; }
nav#nav-mobile { 
    display: block; }  
}

HTML:

<nav id="nav-mobile">

<ul id="vertnav">
 <li class="favoritter open expanded" style="display: list-item;">
    <span class="vertnav-cat"><a href="#"><span>Favoritter</span></a></span>
  <ul>
    <li class="mest-solgte expanded" style="display: list-item;">
      <span class="vertnav-cat"><a href="#"><span>mest solgte</span></a></span>

    </li>
    <li class="vi-anbefaler expanded" style="display: list-item;">
      <span class="vertnav-cat"><a href="#"><span>Vi anbefaler</span></a></span>
    </li>
  </ul>
 </li>
 <li class="favoritter open expanded" style="display: list-item;">
        <span class="vertnav-cat"><a href="#"><span>Favoritter item2</span></a></span>
      <ul>
        <li class="item1 expanded" style="display: list-item;">
          <span class="vertnav-cat"><a href="#"><span>item1</span></a></span>        
        </li>
        <li class="item2 expanded" style="display: list-item;">
          <span class="vertnav-cat"><a href="#"><span>item2</span></a></span>
        </li>
      </ul>
 </li>
</ul>
</nav>

查看 LI 元素“Favoritter”和“Favoritter item2”——这两个是相互堆叠的。

最佳答案

因为父li是绝对定位的。

删除它。

nav#nav-mobile ul#vertnav li {
    display: none;
    list-style-type: none;
    /*
    position: absolute;
    left: 0;
    right: 0;
    */
    margin-left: auto;
    margin-right: auto;
    text-align: center;
    z-index: 99;
    opacity: 0.8;
    background-color: #000;
}

JSFiddle Demo

关于html - CSS li 元素相互堆叠,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30302255/

相关文章:

javascript - 在输入文本javascript中输入数字时如何显示选项

css - Internet Explorer 中的 Bootstrap 工具提示边框问题

html - 流畅的内联列表和行对齐

html - 对齐容器底部的最后一个 li

html - 具有适当许可和声明的网络字体的字体像素化

javascript - 微软 Logo 动画 v2

javascript - 从在javascript中创建的id触发jquery事件

javascript - 如何在单个文本区域中使用多个字体?

jquery - 切换功能问题

javascript - 如何在纯javascript中点击时获取li元素内的文本