【发布时间】:2012-05-26 18:05:51
【问题描述】:
我正在为下拉菜单做一些标记。
标记如下:
<div class="select">
<a href="#" class="anchor menu-active">
<label>val1</label><span class="arrow"><label></label></span>
</a>
<div class="container menu-visible">
<ul>
<li>
<a value="val1" class="item-selected">val1</a>
</li>
<li>
<a value="val2333333333">val2333333333</a>
</li>
</ul>
</div>
</div>
第一个a 代表菜单项,container div 代表子菜单项列表。
- 子菜单项的宽度是可变的,因为它们是动态生成的。
- anchor 中的文本是粗体的,因此在某些情况下,anchor 的宽度可能大于子菜单列表。
我需要做什么:container 和anchor 的宽度必须相同。子菜单可能比锚点更宽,反之亦然。另外,不要人为限制宽度,应该允许随着内容变宽而扩大,不管是anchor还是container。
这是我一直在使用的 CSS,但似乎无法让 anchor 扩展以适应 container:
.container{
position: absolute;
}
.anchor{
font-weight: bold;
}
li{
background: blue;
}
ul{
display: inline-block;
}
.select{
background: red;
display: inline-block;
}
还有小提琴:http://jsfiddle.net/MxdQS/
我希望尽可能只使用 CSS,所以请不要使用 javascript 解决方案 :)
还有一个图表可以更好地说明我在说什么:
一些澄清: 如果我有 2 个不同宽度的容器,其中 1 个是绝对定位的,我怎样才能将它们匹配在一起,以便较短的容器始终扩展到较长容器的宽度?
任何人都可以就如何做到这一点提出建议吗?
【问题讨论】: