CSS 列:先填充行
CSS columns: fill row first
我正在尝试使用 css3 列进行 pinterest 风格的布局。
到目前为止,这是我的代码:
.column-container {
width: 100%;
column-count: 4;
column-gap: 5px;
padding: 0;
margin: 0;
}
.column-container > * {
width: 100%;
display: inline-block;
margin: 0;
padding: 0;
}
img {
max-width: 100%;
}
<div class="column-container">
<figure>
<img src="https://via.placeholder.com/500x150">
</figure>
<figure>
<img src="https://via.placeholder.com/500x250">
</figure>
<figure>
<img src="https://via.placeholder.com/500x350">
</figure>
<figure>
<img src="https://via.placeholder.com/500x450">
</figure>
<figure>
<img src="https://via.placeholder.com/500x150">
</figure>
<figure>
<img src="https://via.placeholder.com/500x250">
</figure>
<figure>
<img src="https://via.placeholder.com/500x350">
</figure>
<figure>
<img src="https://via.placeholder.com/500x450">
</figure>
<figure>
<img src="https://via.placeholder.com/500x150">
</figure>
</div>
它目前有效,但是当 <figure>
个元素很少时会出现问题:
.column-container {
width: 100%;
column-count: 4;
column-gap: 5px;
padding: 0;
margin: 0;
}
.column-container > * {
width: 100%;
display: inline-block;
margin: 0;
padding: 0;
}
img {
max-width: 100%;
}
<div class="column-container">
<figure>
<img src="https://via.placeholder.com/500x150">
</figure>
<figure>
<img src="https://via.placeholder.com/500x250">
</figure>
</div>
如您所见,如果您有两个元素,它们会在第一列中进行调整。即使有四个元素也会发生这种情况:第一列中有两个,第二列中有两个。
有没有办法让他们每列调整一个?
您将图形显示为内联块。改为显示它们块
.column-container > * {
width: 100%;
display: block;
margin: 0;
padding: 0;
}
.column-container {
width: 100%;
column-count: 4;
column-gap: 5px;
padding: 0;
margin: 0;
}
.column-container > * {
width: 100%;
display: block;
margin: 0;
padding: 0;
}
img {
max-width: 100%;
}
<div class="column-container">
<figure>
<img src="https://via.placeholder.com/500x150">
</figure>
<figure>
<img src="https://via.placeholder.com/500x250">
</figure>
</div>
您必须将它们显示为块而不是内联块,才能让它们显示在彼此之上。
像这样:
.column-container > * {
width: 100%;
display: block;
margin: 0;
padding: 0;
}
我正在尝试使用 css3 列进行 pinterest 风格的布局。
到目前为止,这是我的代码:
.column-container {
width: 100%;
column-count: 4;
column-gap: 5px;
padding: 0;
margin: 0;
}
.column-container > * {
width: 100%;
display: inline-block;
margin: 0;
padding: 0;
}
img {
max-width: 100%;
}
<div class="column-container">
<figure>
<img src="https://via.placeholder.com/500x150">
</figure>
<figure>
<img src="https://via.placeholder.com/500x250">
</figure>
<figure>
<img src="https://via.placeholder.com/500x350">
</figure>
<figure>
<img src="https://via.placeholder.com/500x450">
</figure>
<figure>
<img src="https://via.placeholder.com/500x150">
</figure>
<figure>
<img src="https://via.placeholder.com/500x250">
</figure>
<figure>
<img src="https://via.placeholder.com/500x350">
</figure>
<figure>
<img src="https://via.placeholder.com/500x450">
</figure>
<figure>
<img src="https://via.placeholder.com/500x150">
</figure>
</div>
它目前有效,但是当 <figure>
个元素很少时会出现问题:
.column-container {
width: 100%;
column-count: 4;
column-gap: 5px;
padding: 0;
margin: 0;
}
.column-container > * {
width: 100%;
display: inline-block;
margin: 0;
padding: 0;
}
img {
max-width: 100%;
}
<div class="column-container">
<figure>
<img src="https://via.placeholder.com/500x150">
</figure>
<figure>
<img src="https://via.placeholder.com/500x250">
</figure>
</div>
如您所见,如果您有两个元素,它们会在第一列中进行调整。即使有四个元素也会发生这种情况:第一列中有两个,第二列中有两个。
有没有办法让他们每列调整一个?
您将图形显示为内联块。改为显示它们块
.column-container > * {
width: 100%;
display: block;
margin: 0;
padding: 0;
}
.column-container {
width: 100%;
column-count: 4;
column-gap: 5px;
padding: 0;
margin: 0;
}
.column-container > * {
width: 100%;
display: block;
margin: 0;
padding: 0;
}
img {
max-width: 100%;
}
<div class="column-container">
<figure>
<img src="https://via.placeholder.com/500x150">
</figure>
<figure>
<img src="https://via.placeholder.com/500x250">
</figure>
</div>
您必须将它们显示为块而不是内联块,才能让它们显示在彼此之上。 像这样:
.column-container > * {
width: 100%;
display: block;
margin: 0;
padding: 0;
}