我正在创建一个平铺的图像网格,就像一个带有缩略图网格的图像库,我需要将图像包裹在3个图像之后的下一行.所以我浮动了一堆div,每个div包含一个图像,然后在三个图像后手动清除浮动.
问题是我在一个相当复杂的现有模板中工作,该模板已经使用float来安排所有事情.清除网格中的浮动会扰乱整个页面,大概是因为它清除了页面中的每个浮点数.我能做什么?
我正在通过插入一个空白div清除浮动.即:
<div style='clear:right'>
Run Code Online (Sandbox Code Playgroud)
清除浮动的其他方法之一可能更好吗?
简化版可能如下所示:
<style>
div#container {
overflow: hidden;
width: 300px;
}
div#container img {
float: left;
width: 100px;
}
</style>
<div id="container">
<img src="" />
<img src="" />
<img src="" />
<img src="" />
<img src="" />
<img src="" />
<img src="" />
<img src="" />
<img src="" />
</div>
Run Code Online (Sandbox Code Playgroud)
如果你的标记是这样的:
div
img
img
img
row break
img
img
img
...
Run Code Online (Sandbox Code Playgroud)
然后你需要在每三个块之后添加以下内容:
<br class="clear" />
Run Code Online (Sandbox Code Playgroud)
但如果你的标记是这样的:
div
div
img
img
img
div
img
img
img
...
Run Code Online (Sandbox Code Playgroud)
..然后你只需要将以下.clear类应用到你的内部 DIV 中。
无论哪种方式,都将其添加到您的样式表中:
.clear:after {
content: ".";
display: block;
height: 0;
clear: both;
visibility: hidden;
}
* html .clear { height: 1%; }
*:first-child+html .clear { min-height: 1px; }
Run Code Online (Sandbox Code Playgroud)
您可以将此类用于包含浮动的所有其他元素。