2013-02-21 88 views
0

你好,我有这样的
修复位置

<ul> 
    <li>MenuItem1</li> 
    <li>MenuItem2</li> 
    <li>MenuItem3 
    <ul> 
     <li>SubMenuItem3.1</li> 
     <li>SubMenuItem3.2</li> 
    </ul> 
    </li> 
</ul> 

这是在页面的中心对齐的横向菜单,和我想要做的就是当一个两级菜单MenuItem3被选中,其子菜单出现,其项目应出现在MenuItem3下面。我描述是这样的:

MenuItem1 MenuItem2 MenuItem3 
          /\ 
      SubMenuItem3.1 SubMenuItem3.2 

我已经做到了水平和出现的子菜单,但的MenuItem3增加大小以适应子菜单的大小。所以,我得到的是这样的:

MenuItem1 MenuItem2   MenuItem3 
            /\ 
         SubMenuItem3.1 SubMenuItem3.2 

有什么办法解决这个问题吗?这是纯粹的CSS可能吗?

谢谢!


BenM请求后,这里是我目前使用的CSS:

#menu ul { 
    list-style: none; 
    margin: 0; 
    padding: 0; 
} 

#menu > ul > li { 
    position: relative; 
    float: left; 
} 

#menu > ul > li > ul { 
    list-style: none; 
    margin: 0; 
    padding: 0; 
} 

#menu > ul > li > ul > li{ 
    position: relative; 
    float: left; 
} 

------------------------ -------------
Edit vol.2
----------------------------- --------
经过Sen Jacob的建议之后,我修改了一下这one,并且因为我不知道每个顶级菜单项有多少个孩子,所以我使用了Javascript进行适当的中心对齐。特别是我使用了JQuery的width()position()函数。我希望这是有道理的。

+2

请告诉我们你的CSS ... – BenM 2013-02-21 12:05:36

+0

更新了原来的职位与当前的CSS – George 2013-02-21 12:20:44

回答

1

你需要做li包含子ul,通过不关闭您的li早做到这一点:

<li>MenuItem3</li> 
    <ul> 
     <li>SubMenuItem3.1</li> 
     <li>SubMenuItem3.2</li> 
    </ul> 

变成

<li>MenuItem3 
    <ul> 
     <li>SubMenuItem3.1</li> 
     <li>SubMenuItem3.2</li> 
    </ul> 
</li> 
+0

你说得对,这就是我有它;我在原帖中犯了一个错误。谢谢 – George 2013-02-21 12:10:46

1

你是不是想实现这一目标?

CSS3 Family Tree

尝试下面的样式,jsFiddle

#menu ul { 
    width:auto; 
    clear:both; 
    display:block; 
    list-style: none; 
    margin:0 auto; 
} 
ul li { 
    display: inline-block; 
    position: relative; 
    text-align:center; 
    padding: 2px; 
} 
li ul { 
    position: relative; 
    display:inline; 
    top:25px; 
    right:50%; 
} 
+0

这更像你发布的第一张(家谱),但我希望每个家长的位置都是“固定的”,不管他们的孩子。 – George 2013-02-21 12:24:19

+0

我已更新我的帖子,请检查 – 2013-02-21 12:48:00

+0

非常感谢您的更新。这是它现在的样子。你是否看到MenuItem3“移动”在右侧以包含其子菜单?我希望它保持2px(就像在你的CSS中)到MenuItem2的右边(就像MenuItem2是2px到MenuItem1的右边)。换句话说,我想把整个Menu3移到左边。我希望这是有道理的。如果不是,请让我知道,我会尝试上传图片。谢谢 – George 2013-02-21 13:05:11