html - 如何仅使用CSS构建多级菜单?

标签 html css

我的 CSS 有问题。我正在创建一个垂直菜单,但我的问题是我不知道如何将第二级类别与第一级类别对齐。这也是从第二层到第三层的问题;它还与父级别对齐。

我的格式是这样的:

Parent 1
   - Second Level 1
      - Third Level 1
      - Third Level 2
      - Third Level 3
Parent 2
   - Second Level 2
      - Third Level 1
      - Third Level 2
      - Third Level 3

这是我想要的输出:

enter image description here

这是我的 CSS:

#category-navigation ul ul { display: none }
#category-navigation ul li:hover > ul { 
    display: inline-block;
    position: absolute;
    background-color: #F5F5F5;
    border: 1px solid #CCC;
    top: 20px;
    left: 15%;
    z-index: 4;
    width: 30%;
    box-shadow: 5px 5px 5px #CCC;
}

#category-navigation ul.parent { 
    border-bottom: 1px solid #ccc; 
    padding: 7px 0px;
}

#category-navigation ul.parent li { 
   border-bottom: 1px solid #ccc; 
   padding: 7px 0px; 
}

这是我的代码的 fiddle :

http://jsfiddle.net/rochellecanale/4fh680uv/8/

如何修复对齐?

最佳答案

您应该在第一层中指定 li 元素 position:relative。这样,子 ul 元素的定位是相对于 li 元素的。

要将子 ul 元素放置在 li 元素旁边,您可以给它们

top: 0px;
left: 100%;

updated the jsfiddle因此。请注意,这需要一些额外的调整才能看起来非常好,但我不会为您完成所有工作。

关于html - 如何仅使用CSS构建多级菜单?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29162038/

相关文章:

html - 移动网站的Android背景图片模糊?

javascript - HTML 将参数传递给 javascript 函数,然后进行日期比较,然后 javascript 返回结果以 html 显示

jquery - 如何在同一网页中以 Tab 方式打开链接

javascript - 使用 JavaScript 将 null 替换为字符串

html - li 和 p 水平对齐

javascript - 单击类(class)时在地址栏中隐藏哈希

html - CSS Flexbox 将列元素与边距等距展开

html - CSS float (无法让 clearfix 工作)

HTML 电子邮件 - 空表/TR/TD 作为间隔符

javascript - 如何覆盖 javascript 表单小部件的属性