如何强制嵌套的列表项与父列表项具有相同的宽度?

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;
}

1
+1 - 很棒的问题! - Joseph at SwiftOtter
3个回答

8
我已经为您更改了fiddle。父级li需要有"position:relative;",嵌套子菜单必须具有"width:100%;"和"position:absolute;"。 http://jsfiddle.net/BXnxc/2/

2
你可以通过将父级LI设置为相对定位,子级UL设置为width: 100%来实现此功能。 演示: http://jsfiddle.net/BXnxc/3/
.horizontalMenu li {    
    position: relative;
}
.horizontalMenu li ul {    
    width: 100%;   
}

2
你也可以通过继承包含结构的宽度来实现这一点。我将你的mainMenu div设置为200px的宽度,然后为mainSubMenu设置width:inherit。 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; 
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接