8

我有一个水平父列表。某些列表项在单击时会显示嵌套的垂直列表。如何强制垂直子列表中的项目与父列表项的宽度相同?

请参阅jsFiddle

在此处输入图像描述

HTML:

<ul class="mainMenu horizontalMenu bulletless fullWidth bold">
    <li class="showSubMenu">
        <div>Resumes &amp; Cover Letters &#x25BE; </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;
}
4

3 回答 3

8

我在你的小提琴上做了改变。http://jsfiddle.net/BXnxc/2/

父 li 需要有position:relative;,嵌套的子菜单必须有width:100%;position:absolute;

于 2013-01-03T19:08:41.290 回答
2

您可以通过将父级指定LI为相对和子级来执行此UL操作width: 100%

演示:http: //jsfiddle.net/BXnxc/3/

.horizontalMenu li {    
    position: relative;
}
.horizontalMenu li ul {    
    width: 100%;   
}
于 2013-01-03T19:07:40.930 回答
2

您也可以通过继承包含结构的宽度来做到这一点。我将您的 mainMenu div 设置为 200px 的宽度,然后将宽度设置为 mainSubMenu 的继承。

http://jsfiddle.net/BXnxc/4/

.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; 
}
于 2013-01-03T19:26:45.533 回答