我正在尝试创建一个图像的砌体网格一般的想法是使用 column-count in 来实现这个例子。
我有三列包含一堆图像,CSS 和 HTML 与链接中的相同。问题是列不能正确对齐。最右边的列通常比其他列短得多。显然,除非图像大小相同,否则列永远不会完美对齐,但差异远大于此。有时前两列各包含十张图像,但第三列仅包含两张(图像大小相似),这意味着您可以轻松地将一些图像从第一列和第二列移动到第三列以获得更好的对齐. 这个结果似乎与列数的想法背道而驰。
如果您将某些图像更改为小得多的图像,上述链接也会发生这种情况。仅仅是列数仍然存在问题且不应使用,还是有一些技巧可以阻止这种情况发生?
编辑:这是基本的 CSS(减去许多基本样式,如过渡和其他东西,我试图将其删除以查看它们是否是罪魁祸首)。
#wrapper {
width: 90%;
max-width: 1100px;
min-width: 800px;
margin: 50px auto;
}
#columns {
-webkit-column-count: 4;
-webkit-column-gap: 10px;
-webkit-column-fill: auto;
-moz-column-count: 4;
-moz-column-gap: 10px;
-moz-column-fill: auto;
column-count: 4;
column-gap: 15px;
column-fill: auto;
}
.pin {
display: inline-block;
background: #FEFEFE;
border: 2px solid #FAFAFA;
box-shadow: 0 1px 2px rgba(34, 25, 25, 0.4);
margin: 0 2px 15px;
-webkit-column-break-inside: avoid;
-moz-column-break-inside: avoid;
column-break-inside: avoid;
padding: 15px;
padding-bottom: 5px;
}
这是一个显示问题的 JSFiddle。有四列,但在 Chrome 中,第三列比它需要的要短,图像可以从第四列移动以使它们更均匀。请注意,这个例子“没有那么糟糕”,但问题可能比这大得多。有时差值等于几幅图像的大小。