【发布时间】:2012-07-06 17:14:50
【问题描述】:
我有一个带有表格/表格单元标签的水平菜单:
.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>
现在通常我只会制作一级 li 的 position: relative 和二级 ul position: absolute 并赋予它与我赋予 li 元素相同的大小;但在这种情况下,我没有固定的 li,所以我尝试了这个:
.menu li {
position: relative;
}
ul.submenu {
position: absolute;
width: 100%;
}
但它不是 - 正如我所期望的那样 - 扩展到其父元素 (li) 的 100% 宽度,而是获得最近的指定元素的宽度(在这种情况下,我认为宽度为 960px 的 div,但它可能也更大)。
我的问题是:是否可以将二级 ul 元素扩展到其父元素的宽度,即表格单元格样式的 li 而无需回退到 JavaScript?
我知道,我必须为禁用的浏览器编写脚本,例如 IEhttp://jsfiddle.net/hy73d/
编辑#1:引起了我的注意,这实际上在 webkit-browser 和 opera 中有效;所以真正的问题是,壁虎有解决方案吗?
【问题讨论】:
-
这个问题只适用于火狐。 Chrome 会按照您(可能)希望的方式显示它。
标签: html css drop-down-menu menu submenu