div标签内的无序列表不会显示在封闭div之外

时间:2014-01-01 00:35:04

标签: html css css3

我在div标签中有一个无序列表。

我有一个类似于列表元素结构的树,其中包含其他列表,例如

<ul>
 <li>
  <ul>
   <li>
   </li>
  </ul>
 <li>
</ul>

当我将鼠标悬停在包含子列表的列表元素上时,子列表在包含div元素中显示为弹出窗口。此列表最多可达三层,这会产生问题。宽度我必须显示我的包含div是有限的(170px宽度/ 400px高度),所以我希望弹出列表元素延伸到包含div之外,但我正在努力使这个工作。

基本上我想要存在垂直滚动条但隐藏宽度滚动条。宽度溢出应延伸到包含div之外。我尝试过overflow-y / x的变化,但我似乎无法达到我所需要的平衡。我也无法将弹出的

  • 元素扩展到包含开发区之外。

    下面给jsfiddle提供一个例子。以下是问题的图片:

    http://jsfiddle.net/sapatos/tvZUX/1/

    enter image description here

  • 1 个答案:

    答案 0 :(得分:3)

    滚动效果是由以下CSS代码引起的:

    overflow-y: scroll;
    

    如果你把它拿出来,那么滚动就会消失宽度。

    在子example中可以看到将子菜单放在子菜单等中的想法。

    您也可以尝试此DEMO

    我改变了你的代码,使用margin-left重新定位所有内容。但说实话,你的代码是非常庞大的,我建议你把它的一部分用于它然后再进行处理。我要注意的最后一件事是,当你开始进入子菜单时,不要太困惑。这绝对是一个复杂的思考过程。

    编辑这是我可以给你的最后一个例子......我想提醒你,这可能并不是每个浏览器都准确,并且可能有更好的方法来定位所有内容。这是:

    DEMO

    但是当li标签内的内容不同时,这会变得更加困难。一个例子是当你只有一行文本和两行文本时,这将使绝对定位完全无用。这些垂直方式可能比水平方式更容易,并且可能有更好的解决方案,但这可能需要使用JavaScript或该语言的派生。