我有一个水平父列表。单击时,某些列表项会显示嵌套的垂直列表。如何强制垂直子列表中的项目与父列表项目的宽度相同?
请参阅jsFiddle。
HTML:
<ul class="mainMenu horizontalMenu bulletless fullWidth bold">
<li class="showSubMenu">
<div>Resumes & Cover Letters ▾ </div>
<ul class="mainSubMenu bulletless">
<li><a>Resumes</a></li>
<li><a>Cover Letters</a></li>
<li><a>Interviews</a></li>
</ul>
</li><li><a>Other Link</a>
</li><li><a>Other Link</a></li>
</ul>
CSS:
.horizontalMenu li{
display: inline-block;
}
.mainMenu > li{
border: 1px solid black;
}
.mainMenu a, .mainMenu div{
display: block;
padding: 10px 20px;
}
.mainSubMenu{
position: absolute;
}
答案 0 :(得分:8)
我改变了你的小提琴。 http://jsfiddle.net/BXnxc/2/
父李需要position:relative;
,嵌套子菜单必须有width:100%;
和position:absolute;
答案 1 :(得分:2)
您可以将父LI
指定为亲戚,将子UL
指定为width: 100%
演示: http://jsfiddle.net/BXnxc/3/
.horizontalMenu li {
position: relative;
}
.horizontalMenu li ul {
width: 100%;
}
答案 2 :(得分:2)
您也可以通过继承包含结构的宽度来完成此操作。我将mainMenu div设置为宽度为200px,然后设置width:继承为mainSubMenu。
.mainMenu a, .mainMenu div{
display: block;
padding: 10px 20px;
width:200px;
}
.mainSubMenu{
position: absolute;
width:inherit;
}
.mainSubMenu li
{
display: block;
border: 1px solid grey;
width:inherit;
}