当一个 DIV 上使用 CSS 浮动时,其他没有浮动的 DIV 会继续占用浮动 DIV 的空间。虽然我确信这是故意的,但我不知道如何达到我想要的效果。请考虑这个例子:
<html>
<div style="width:400px">
<div style="width:150px;float:right;border:thin black solid">
Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam.</div>
Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.
<div style="background-color:red;border:thin black solid">Some sample text</div>
Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi.
</div>
</html>
如果您将此 HTML 粘贴到浏览器中(或检查其jsfiddle),您会注意到“一些示例文本”是红色的,并且红色背景一直延伸到浮动 DIV。虽然我确信有一种方法可以掩盖我不想要的红色背景部分,但它仍然会使边框被裁剪掉并隐藏在 DIV 下方。理想情况下,我希望背景颜色和边框只占据有效的文本空间,而不是在浮动的 DIV 下方蔓延。这种效果可能吗?
请注意,我使用 float 属性不是作为列的替代品,而是作为一个让文本围绕它流动的块。到目前为止,所提出的解决方案都没有考虑到这一点。为了清楚起见,这里有一些图像。
这就是我得到的:
这就是我要的:
您会注意到,在这两个示例中,当文本到达底部时,最终文本会环绕浮动部分。我的第二个示例可以通过直接指定包含“一些示例文本”的 div 的宽度来实现。我不想指定宽度。这似乎是多余的,因为我想要与它周围的文本相同的宽度。但也许这是不可能的?