overflow - 是否可以从具有固定高度的菜单创建纯 CSS 子菜单?

标签 overflow submenu css

我有一个垂直菜单,其中有些元素有一个显示在该元素右侧的子菜单。这大部分工作正常,但主菜单上可能有很多元素,所以我想要一个最大高度和垂直滚动条。

问题是,如果我在主菜单上设置 overflow: auto,那么子菜单将不再正确显示,因为它无法溢出主菜单的宽度。

这是我的代码,示例位于 http://jsfiddle.net/FK8p6/ .如果从 .menu 类中删除 overflow: auto,那么您可以看到子菜单正常工作,但当然主菜单不再正确显示。

HTML:

<ul class="menu">
    <li>Menu 1</li>
    <li>Menu 2</li>
    <li>Menu 3</li>
    <li>Menu 4</li>
    <li>Menu 5</li>
    <li>
        Menu 6
        <ul class="menu submenu">
            <li>SubMenu 1</li>
            <li>SubMenu 2</li>
            <li>SubMenu 3</li>
        </ul>
    </li>
</ul>

CSS:

.menu
{
    padding: 5px;
    list-style-type: none;
    background-color: #99f;
    max-height: 80px;
    width: 100px;
    overflow: auto;
}

.menu li
{
    border: #ddd 1px solid;
    position: relative;
    line-height: 24px;
    cursor: default;
}

.menu li:hover
{
    background-color: #d1e7ff;
}

.submenu
{
    max-height: none;
    background-color: #fff;
    padding: 0;
    position: absolute;
    top: -1px;
    left: 100%;
    display: none;
}

.menu li:hover .submenu
{
    display: block;
}

我知道我可以将子菜单拉出层次结构中的主菜单,然后使用 javascript 对其进行定位。但后来我失去了纯 CSS 菜单,它也不再是语义化的。如果必须的话,我可以接受,但如果可能的话,我想找到更好的解决方案。

最佳答案

你看过这个教程吗?我认为固定高度的导航栏没有任何问题......

http://www.devinrolsen.com/pure-css-horizontal-menu/

哦,该死的 - 垂直菜单?可能这将无济于事。

关于overflow - 是否可以从具有固定高度的菜单创建纯 CSS 子菜单?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15558355/

相关文章:

css - z-index 似乎不起作用

html - 如何让后台溢出(在:before) visible

javascript - Bootstrap 子菜单链接不起作用

html - 问题 - 子菜单 CSS 的悬停

css - 如何使用自定义 CSS 覆盖 RichFaces 组件的 CSS

javascript - 为什么关键事件会导致快速转换?

css - 如何在同一行显示文本和组件文本

c - 检测并防止 C 中 unsigned long 溢出

html - 如何在隐藏的溢出中显示下拉宽度?

css - 子菜单在导航菜单中被截断