css stretch li基于内容

时间:2013-02-20 13:53:04

标签: html css html-lists stretch

我有this code here,我正在努力让ul.submenu li根据其内容进行延伸。正如您所看到的,li的第3个ul.submenu有一个长文本隐藏而不是拉伸li

我尝试使用各种组合更改DOM上所有元素的display属性,但我无法正确使用。

我做错了什么以及为什么会这样?我错过了什么?

非常感谢任何帮助! :)

2 个答案:

答案 0 :(得分:5)

由于块显示和绝对定位,目前文本对布局几乎没有影响。

您可以通过提供li s display: inline-blockwhite-space: nowrap来更改此设置。我forked an example子菜单与最长项目所需的一样长。

解释

inline-block给出inlineblock的元素属性display:inline,因为元素应该像文本一样流动,并从文本中获取其初始布局和尺寸它包含。但block部分意味着您还可以指定顶部和底部填充和边距,清除等。即使使用此设置,包含元素仍然是绝对定位的(大多数文本内容只是在需要时流动,因为通常包含块元素填充100%宽度 - 不是绝对元素,相对元素和固定元素的情况),因此它的本能是折叠到第一个单词的最小宽度。但是如果我们使用white-space: nowrap,我们可以强制文本扩展到所需的范围,因此将完整的句子用作度量。

答案 1 :(得分:-1)

您可以将最小宽度更改为:

min-width: 240px;

View Example