我一直在玩三个级别的 CSS 菜单,但我似乎无法完全正确地布局。在 HTML 端,菜单只是一堆嵌套的无序列表:
<ul id="menu">
<li>One</li>
<li>Two
<ul id="sub">
<li>Three
<ul id="subsub">
<li>Three One</li>
<li>Three Two</li>
</ul>
</li>
<li>Four</li>
</ul>
</li>
</ul>
在这个小提琴中使用 CSS:http: //jsfiddle.net/ckLAd/
我想要的是menu
“一二”是一个水平菜单栏(这是有效的),sub
菜单“三”和“四”正好在“二”下方排列。目前他们有点偏右。然后,将鼠标悬停在“三”上,subsub
菜单“三一”和“三二”应与项目“三”水平对齐,但向右对齐。
让我困惑的是对齐方式。子菜单目前使用对齐,left: 3em; top: 0;
但这对我来说似乎相当 hacky。有没有办法更好、更精确地做到这一点?
另外,我怎样才能改进 CSS,清理它并使其更紧凑?
类似地,当我加载页面时,我使用的另一个菜单是透明的(即内容通过li
元素可见),但当我滚动页面时,它只是li
固化了一个像素。当它们是透明的时,它们也会在li:hover
对 parent 不满意时消失ul
。还没有完全弄清楚那里发生了什么。