html - 将级联 ul 显示为内联 block 不起作用

标签 html css

我想在列出的元素( list 2)中显示列出的元素( list 1)并且我想要 <li>内联显示的第一个列表的元素和 <li>每个第一个里面的元素<li>在悬停时垂直显示。将鼠标悬停在第一个 main <li> 上时出现的问题, 然后是第二个主 <li>将显示在第一个主要的末尾 <li>这不是预期的:

enter image description here

以下是问题的现场展示: https://codepen.io/alafawzi/pen/PaVYyB

ul {
  list-style: none;
  padding: 0;
  margin: 0;
  height: 100%;
}

ul li {
  display: inline-block;
  padding: 15px;
}

ul li ul li{
  margin: 0;
  padding: 0;
  display: none;
}

ul li:hover ul li{
  display: block;
}
<body>
  <header>
    Html5 begins
  </header>

  <nav>
    <ul>
      <li><a href="#">div</a>
        <ul>
          <li>Link1.1</li>
          <li>Link1.2</li>
          <li>Link1.3</li>
        </ul>
      </li>
      <li><a href="#">head</a>
         <ul>
         <li>Link2.1</li>
          <li>Link2.2</li>
          <li>Link2.3</li>
        </ul>
    </ul>
  </nav>

</body>

最佳答案

需要在sub ul中添加绝对位置。

ul {
  list-style: none;
  padding: 0;
  margin: 0;
  height: 100%;
}

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

ul li ul{
  margin: 0;
  padding: 0;
  display: none;
  position: absolute;  
}

ul li:hover ul{
  display: block;
}
<body>
  <header>
    Html5 begins
  </header>

  <nav>
    <ul>
      <li><a href="#">div</a>
        <ul>
          <li>Link1.1</li>
          <li>Link1.2</li>
          <li>Link1.3</li>
        </ul>
      </li>
      <li><a href="#">head</a>
         <ul>
         <li>Link2.1</li>
          <li>Link2.2</li>
          <li>Link2.3</li>
        </ul>
    </ul>
  </nav>

</body>

关于html - 将级联 ul 显示为内联 block 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51114866/

相关文章:

html - 使菜单与 Logo 图像垂直居中

c# - Blazor 将输入值绑定(bind)到 oninput 不适用于 onkeypress

html - 在节内设置文章标签的边距会影响节的边距

css - styled-components:主题中的样式覆盖组件样式

html - 边框扩展div高度

Javascript 打开关闭新消息

javascript - html - css block 宽度/高度

javascript - 如何在不失去可扩展性的情况下为网页(HTML/JS)制作动画?

html - CSS 标签定位

css - 我无法居中的 div 上的奇数左边距