如何创建可变列并填充它们?
How to create variable columns and fill them up?
我有一个项目列表,我希望这些项目彼此相邻。我不知道会有多少项目,所以我不能有一个固定的高度。我希望他们像这样尽可能地填写 space:
#parent {
background-color: firebrick;
max-height: 200px; /* <-- eliminate */
display: flex;
flex-flow: column wrap;
}
.child {
background-color: #fff;
height: 30px;
width: 100px;
margin: 10px;
padding: 3px;
}
<div id="parent">
<div class="child">child</div>
<div class="child">child</div>
<div class="child">child</div>
<div class="child">child</div>
<div class="child">child</div>
<div class="child">child</div>
<div class="child">child</div>
<div class="child">child</div>
</div>
所以我基本上想要上面的但没有 #parent
上的 max-height
但是当我删除它时它们将只在一个宽栏中。
columns 可以这样做:
#parent {
background-color: firebrick;
column-width:120px; /* set the width of columns and the number will be automatic */
column-gap: 20px; /* to replace margin between element */
padding:0 10px;
}
.child {
background-color: #fff;
height: 30px;
display:inline-block; /* use inline-block because block element are buggy */
width:100%; /* make them full width so they behave like block */
margin:10px 0; /* keep only top and bottom margin */
padding: 3px;
box-sizing:border-box;
}
<div id="parent">
<div class="child">child</div>
<div class="child">child</div>
<div class="child">child</div>
<div class="child">child</div>
<div class="child">child</div>
<div class="child">child</div>
<div class="child">child</div>
<div class="child">child</div>
</div>
我有一个项目列表,我希望这些项目彼此相邻。我不知道会有多少项目,所以我不能有一个固定的高度。我希望他们像这样尽可能地填写 space:
#parent {
background-color: firebrick;
max-height: 200px; /* <-- eliminate */
display: flex;
flex-flow: column wrap;
}
.child {
background-color: #fff;
height: 30px;
width: 100px;
margin: 10px;
padding: 3px;
}
<div id="parent">
<div class="child">child</div>
<div class="child">child</div>
<div class="child">child</div>
<div class="child">child</div>
<div class="child">child</div>
<div class="child">child</div>
<div class="child">child</div>
<div class="child">child</div>
</div>
所以我基本上想要上面的但没有 #parent
上的 max-height
但是当我删除它时它们将只在一个宽栏中。
columns 可以这样做:
#parent {
background-color: firebrick;
column-width:120px; /* set the width of columns and the number will be automatic */
column-gap: 20px; /* to replace margin between element */
padding:0 10px;
}
.child {
background-color: #fff;
height: 30px;
display:inline-block; /* use inline-block because block element are buggy */
width:100%; /* make them full width so they behave like block */
margin:10px 0; /* keep only top and bottom margin */
padding: 3px;
box-sizing:border-box;
}
<div id="parent">
<div class="child">child</div>
<div class="child">child</div>
<div class="child">child</div>
<div class="child">child</div>
<div class="child">child</div>
<div class="child">child</div>
<div class="child">child</div>
<div class="child">child</div>
</div>