【发布时间】:2014-07-11 02:48:01
【问题描述】:
我正在使用column-count 创建一个图像网格。使用列的问题是,就像文本一样,甚至图像也会损坏。因此,图像的上半部分可以在一列中,而下半部分可以在第二列中。我通过将display: inline-block 添加到列中的项目来解决这个问题。 这让我想到了当前的问题:column-count 为 3 和 7 个项目,项目显示为 [3][3][1]。
[item] [item] [item]
[item] [item]
[item] [item]
我希望项目显示为 [3][2][2]。所以问题是:我可以将其中一个 div 强制到下一列吗?
HTML
<div id="container">
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
</div>
CSS
#container {
column-count: 3;
-moz-column-count: 3;
-webkit-column-count: 3;
width: 100%;
}
.item {
background: red;
/*-webkit-column-break-inside: avoid;
-moz-column-break-inside:avoid;
-moz-page-break-inside:avoid;
page-break-inside: avoid;*/
display: inline-block;
height: 250px;
margin-bottom: 20px;
width: 100%;
}
被注释掉的部分是防止图像损坏的第二种方法,但它比简单的display:inline-block 受支持更少。它做同样的事情。
我尝试改变高度并使用clear。
更新
根据要求,提供一些背景信息/用例。
图像网格将用于餐厅的简单网站。它将用于具有两种不同功能的多个页面。功能一是在首页上,其中八个图像(纵向或横向格式)将用作指向不同页面的链接。 (8 个图像被正确划分 [3][3][2])图像网格的第二个功能将是,作为图像网格。例如,这家餐厅有着悠久的历史,他们的照片可以追溯到近 100 年前。在此过程中可能会添加更多图像。使用列数而不是三个 div 可以更轻松地添加图像,并且非常容易做出响应。问题在于,对于特定数量的图像(例如 7 个),图像无法在列上正确划分。
更新 2
我尝试使用 Masonry 框架,但效果不佳。
【问题讨论】:
-
你能解释一下这个用例吗?也许还有另一种方法可以模拟
column布局?
标签: html css column-count