当您设置display: inline-block;
一个元素时,该元素将与周围的内容一起流动。
因此,您需要添加换行符<br>
以在文本中产生换行符,但行的垂直空间将保持如您所提到的那样。[还有一件事是水平滚动条,如果你减小面板的宽度就会出现。]
介绍
在这里使用<table></table>
element 有很多好处。
当您使用<table>
element (如下所示)时,它会导致内容转到下一行。当剩余的水平空间低于 的宽度时<table>
,它将转到下一行并将内容向下推。
而且,在这种情况下,水平滚动条不会出现,因为<table>
当它没有任何内部元素或任何特定height
或border
属性时,浏览器不会显示。
(不同的浏览器有不同的行为,Mozilla Firefox 不会显示table
具有特定border
属性的元素,但 Google Chrome 会。)
HTML:
<img src="http://placehold.it/100x50" alt="">
<table></table>
Lorem ipsum dolor sit amet...
CSS:
img { float: left; }
table { width: 12em; }
这是JSBin 演示。
解决方案
作为一种纯 CSS 方式,我使用::before
伪元素来创建一个行为类似于<table>
HTML 元素的元素。
HTML:
<div>
<img src="http://placehold.it/400x400" alt="">
<p class="content">
<!-- Here is the content... -->
</p>
</div>
CSS:
img { float: left; }
.content:before {
content: ' ';
display: table;
width: 10em; /* <-- Change the current width size */
}
这是JSBin 演示。