我有一个嵌套的无序列表。我需要将它作为水平菜单显示在彼此之下。最大的问题是我不知道我将在这个列表中获得多少级别,所以我想创建可用于n级列表深度的功能。名单多级无序列表到交互式水平菜单
例子:
<ul id="data">
<li>
<h1>Menu 1</h1>
<ul>
<li>
<h1>Menu 1-1</h1>
<ul>
<li>
<div>Some content A</div>
</li>
</ul>
</li>
<li>
<h1>Menu 1-2</h1>
<ul>
<li>
<div>Some content B</div>
</li>
</ul>
</li>
</ul>
</li>
<li>
<h1>Menu 2</h1>
<ul>
<li>
<h1>Menu 2-1</h1>
<ul>
<li>
<div>Some content C</div>
</li>
</ul>
</li>
<li>
<h1>Menu 2-2</h1>
<ul>
<li>
<div>Some content E</div>
</li>
</ul>
</li>
</ul>
</li>
</ul>
这将如何工作的理念是:
Menu 1 Menu 2
Menu 1-1 Menu 1-2
其他列表中默认是隐藏的。当我点击菜单2的结果必然是:
Menu 1 Menu 2
Menu 2-1 Menu 2-2
当我点击一个特定的<h1>
,并在同一水平线上,因为这元素<ul>
元素没有孩子<h1>
,元素<div>
显示在菜单的下方。在我们的例子中:当我点击内容为'Some content A'的Menu 1-1 div时。
我已经试过递归和只使用CSS,但我不能让它工作。 Thnx提前。
这太棒了。正是我需要的。是否可以将菜单2的子菜单与左边对齐? – 2011-12-22 10:23:08
是的,我确定。我不能说,现在我的头在附近,但我会对子元素进行一些定位。可能它可能需要是绝对的,但是你需要设置宽度等。 – Jaijaz 2011-12-22 11:29:34
我将此添加到css left:0;以ul ul.active和它的工作。 Thnx寻求建议。 – 2011-12-22 14:45:02