我有一个带有表格/表格单元标签的水平菜单:
.menu {
display: table;
width: 100%;
}
.menu li {
display: table-cell;
}
<!doctype html>
<html>
<body>
<div style="width: 960px">
<ul class="menu">
<li><span>Selected Menu Item</span></li>
<li><a href="#item">Another Item</a></li>
<li><a href="#item">Another Item</a></li>
<li><a href="#item">Another Item</a></li>
</ul>
</div>
</body>
</html>
这工作正常,但我也有像
<ul class="menu">
<li><span>Selected Menu Item</span></li>
<li><a href="#item">Another Item</a>
<ul class="submenu">
<li><a href="#sub">Submenu Item</a></li>
<li><a href="#sub">Submenu Item</a></li>
</ul>
</li>
</ul>
现在通常我只会制作第一级 liposition: relative
和第二级 ulposition: absolute
并赋予它与我给 li 元素相同的大小;但在这种情况下,我没有固定的 li,所以我尝试了这个:
.menu li {
position: relative;
}
ul.submenu {
position: absolute;
width: 100%;
}
但它不是 - 正如我所期望的那样 - 扩展到其父元素 (li) 的 100% 宽度,而是获得最近的指定元素的宽度(在这种情况下,我认为宽度为 960px 的 div,但它也可能更大)。
我的问题是:是否可以将二级 ul 元素扩展到其父元素的宽度,即表格单元格样式的 li 而不回退到 JavaScript?
我知道这样一个事实,即我必须为禁用的浏览器编写脚本,例如 IE<=7。这是一个运行示例:http: //jsfiddle.net/hy73d/
编辑#1:引起了我的注意,这实际上在 webkit-browser 和 opera 中有效;所以真正的问题是,壁虎有解决方案吗?