html - css基于内容拉伸(stretch)li

标签 html css html-lists stretch

我有this code here我正在尝试使 ul.submenu li 根据其内容进行拉伸(stretch)。正如您所看到的,ul.submenu 的第三个 li 有一个很长的文本,它隐藏而不是拉伸(stretch) li

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

我做错了什么以及为什么会发生这种情况?我错过了什么?

任何帮助将不胜感激! :)

最佳答案

由于 block 显示和绝对定位,目前文本对布局影响不大。

您可以通过指定 lidisplay: inline-blockwhite-space: nowrap 来更改此设置。我有forked an example其中子菜单的长度与最长元素所需的长度相同。

说明

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

关于html - css基于内容拉伸(stretch)li,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14981555/

相关文章:

html - 如何让css子类继承css父类

jquery - 单个产品的照片库/幻灯片放映是什么意思

javascript - newWindow 表中的分页符

CSS :hover height change not working

html - 将单击的按钮标记为事件的

css - 为什么列表项不遵循内联 CSS 规则?

css - 李和一个 :hover css

html - 使用有序列表时,如何将样式仅应用于悬停的列表项,而不应用于父项?

html - 如何在行中 float 元素。

javascript - 保存 CSS - 浏览时,如何将 chrome dev 或 firebug 中的 css 文件保存到本地目录