【问题标题】:Multi-level drop down menu in CSS not working properlyCSS中的多级下拉菜单无法正常工作
【发布时间】:2020-07-16 13:54:17
【问题描述】:

我正在尝试通过使用 CSS 和 HTML 来高效地花费时间。我有一个包含两个级别的菜单,第二个级别显示在悬停时。它有效,但不是我想要的方式。我有几个问题:

  • 二级菜单与一级菜单不相邻。
  • 二级菜单项分散在它们所属的一级菜单项上,并且不会像应有的那样浮动到它的右侧。
  • 菜单左侧有一个来源不明的边距。看看边框就能看到。
  • 菜单第二项的样式也会影响第二级的第二个子项。内联 CSS 解决了这个问题,但还有其他更好的解决方案吗?

您可以在以下page 上看到代码。 请您指出我的错误吗?

【问题讨论】:

    标签: html css drop-down-menu submenu


    【解决方案1】:

    要固定子菜单的位置,并防止主菜单项的大小发生变化,可以这样做:

    给出子菜单(ul 元素-可以是你声明为.menu ul li ul):

    • position:absolute
    • padding:0(ul 元素的内置填充就是你所说的“未知来源的边距”)
    • left:100% 设置子菜单位置。
    • top:0 设置子菜单位置。

    给它parent(li 元素-可以是你声明为.menu li)):

    • position:relative

    至于最后一个问题,我个人认为在您的情况下使用“nth-child”不是一个好的选择——我更喜欢为活动项目使用专用类。

    但是,如果您想解决您在这里所做的事情,只需更具体地说明您想要样式的项目: 而不是这个选择器:.menu ul li:nth-child(2), 使用这个选择器:.menu > ul > li:nth-child(2)。 因此样式将仅应用于主菜单的第二个直接li 子菜单。

    【讨论】:

      猜你喜欢
      • 2015-04-30
      • 2020-10-27
      • 1970-01-01
      • 2019-12-18
      相关资源
      最近更新 更多