【问题标题】:Horizontal sub menu flexible width水平子菜单灵活宽度
【发布时间】:2023-03-15 04:05:02
【问题描述】:

我有一个水平导航,我想摆脱一个水平子导航。问题是我有子导航显示内联,而它有一个绝对位置。我知道当你有一个绝对位置时使用内联显示会有问题。它可以在固定显示器上按我想要的方式工作,但我不希望它被固定......有谁知道这个的替代方案?此外,我不能只在子导航上设置宽度,因为每个子菜单的宽度都会不同。

<style>
     ul li {
        float: left;
        position: relative;
    }

    #primary-nav ul li ul {
        position: relative;
        top: 42px;
        display: none;
        width:100%;

    }
    #primary-nav ul li ul li {
        list-style:none outside none;
        margin-left:20px;
        float:left;
        z-index: 1000;
    }
    #primary-nav ul li:hover ul {
        display:inline;
        position:absolute;
    }
</style>


<ul class="menu">
    <li>menu Item</li>
    <li>drop down</li>
        <ul class="submenu">
            <li>dropdown Item</li>
            <li>dropdown Item</li>
        </ul>
 </ul>

【问题讨论】:

    标签: css list position submenu horizontallist


    【解决方案1】:

    这是一个解决方案的修补程序 -> http://tinkerbin.com/NlqcJcL7

    通过将white-space: nowrap 应用于绝对定位的 .submenu,您可以确保它的子内联块不会折叠到下一行。

    【讨论】:

    • 理论上是有道理的,但由于某种原因,它对我不起作用。也许看看现场的问题? test.kyrusmobile.com
    • 问题是您在 .submenu 中浮动 .menu-items。当你这样做时,它们被视为块级元素,因此 white-space: nowrap 不能做它可以做的事情。显然,修复很容易。删除浮动样式(如果不能,请使用 float: none 覆盖它)。然后,还删除父 ul.submenu 上的 width:100% - 你需要它是自动的。就是这样!
    • 我猜你实际上不需要从 .menu-items 中删除浮动。唯一弄乱布局的是 .submenu 上的设置宽度。但话又说回来,你不需要浮动,所以最好把它去掉。
    猜你喜欢
    • 2017-09-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-08
    • 2011-09-06
    • 2016-07-26
    • 1970-01-01
    • 2015-11-01
    相关资源
    最近更新 更多