我有这个菜单结构:
(内部的 <ul>
标签可以被自定义的 <div>
包围,每一个其他的结构变化都更加困难,因为代码是从动态模块系统生成的,用 PHP 编写)
<div id="menu">
<div class="body-menu">
<ul>
<li class="current"><div class="body-menu">
<a href="bla">Item1</a>
<ul>
<li class="current"><div class="body-menu">
<a href="bla">Sub-Item 1</a>
</div></li>
<li class=""><div class="body-menu">
<a href="bla">Sub-Item 2</a>
</div></li>
</ul>
</div></li>
<li class=""><div class="body-menu">
<a href="bla">Item 2</a>
</div></li>
</ul>
</div>
<div class="menu-background"></div>
</div>
目标是显示内部<ul>
在左侧的第 1 项之后作为子菜单,而不是与其他顶级元素一起位于顶部..
有没有办法在不修改结构的情况下做到这一点?只是用 CSS 还是什么?
更新:
谢谢大家的回答!
尤其是 besluitloos 和 Caelea,这正是我要找的。p>
最佳答案
父<li>
包含第二个 <ul>
应该相对定位并且包含 <ul>
应该绝对定位。
有点像:
ul li { position: relative ;}
ul li ul {position: absolute; top: 0; left: 145px;}
我写了left: 145px
但您可以为其赋予任何值,具体取决于您希望菜单有多大。
PS:提示:不要在那些 div 上使用相同的“body-menu”类,大容器应该不同,不仅如此。而且我真的不认为有必要在那些 < li >
中包含那个 div .
关于php - 如何将内部标签定位在不同的位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12458787/