2015-04-02 71 views
2

假设我想制作一个具有固定高度和宽度的<p>元素,只有当高度不足以显示所有文本时,该元素才会增长。默认情况下,<p>是块级元素。这意味着它有一个贪婪的宽度和懒惰的高度。我想要相反,懒惰的动态宽度和固定/贪婪的高度。内嵌块元素尝试在一行中显示文本,如果可能的话,这不是我想要的。我只想要一个纯粹的CSS解决方案。可能吗?CSS:具有惰性宽度的元素

+2

这是很难想象的,因为文字不是垂直书写的。所以'p'必须以至少最小宽度开始....(所以文本将被强制包裹在最小宽度内)。我想你可能会有更好的运气告诉我们你想要达到的目标,而不是这个不可能的因素如何帮助你实现目标。 – Adam 2015-04-02 17:29:33

+0

我可以看到像这样的一个时髦的元素有些用途,但我,我自己,只是想做,因为我可以。或者如果你想要另一种说明我的目标的方式,我正在测试这种语言的限制。 – 2015-04-02 17:54:15

+0

恭喜。达到限制。我可以设想一堆黑客,都将有失败的边缘情况涉及变换.....听@ Oriol的伟大答案(直接从规范),这是不能做到的。 – Adam 2015-04-02 17:56:17

回答

1

这是不可能的。

9.4.2 Inline formatting contexts

在直列格式化内容,盒被布局水平 [...]。包含形成线 的框的矩形区域称为线框

线框的宽度由containing block和 确定浮线的存在。 [...]

一般而言,线框的左边缘会触及其包含块的 的左边缘,右边缘会触及其包含块的 的右边缘。但是,浮动框可能在包含块边缘的 和线框边缘之间。因此,尽管在相同内联格式化上下文中的线框 通常具有相同宽度(包含块的宽度) ,但是如果可用的话,它们的宽度可以变化。由于floats,水平空间减小。 [...]

根据需要创建线框,以便在线内格式化上下文中保存内嵌级内容 。 [...]

因此,线框的宽度将仅受包含块的宽度和浮点数的影响。然后,根据需要将有尽可能多的线盒。