不要填满可增长的弹性容器的宽度
Do not fill the width of growable flex containers
我正在构建一个 flexbox 容器,容器宽度是可调整的,每个元素应该水平填充容器宽度并且 grow 来填充它们之间的 space,如果该行的元素太多,则另外垂直堆叠。
问题是,当一行只有一个元素时,它会填满容器的整个宽度,这是 flex-grow: 1;
规则的原因。
如果我删除 flex-grow: 1;
规则,元素将停止增长并且不会填充它们之间的 space。
我想要的是使元素可增长以填充它们之间的 space 但不要填充容器的整个宽度。
预期结果:
article{
display: flex;
flex-wrap: wrap;
justify-content: space-between;
width: 800px;
border: 1px solid blue;
}
section{
min-width: 200px;
box-sizing: border-box;
flex-grow: 1;
margin: 10px;
padding: 10px;
border: 1px solid black;
}
<article>
<section>1</section>
<section>2</section>
<section>3</section>
<section>4</section>
</article>
使用例如 width: 30%
代替 flex-grow
和宽度 px:
article{
display: flex;
flex-wrap: wrap;
justify-content: space-between;
width: 800px;
border: 1px solid blue;
}
section{
min-width: 30%;
box-sizing: border-box;
margin: 10px;
padding: 10px;
border: 1px solid black;
}
<article>
<section>1</section>
<section>2</section>
<section>3</section>
<section>4</section>
</article>
我认为使用 css 网格会更好:
* {
box-sizing: border-box;
margin: 0;
padding:0;
}
article {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
gap: 15px;
width: 800px;
padding: 10px;
border: 1px solid blue;
}
section {
padding: 10px;
border: 1px solid black;
}
我正在构建一个 flexbox 容器,容器宽度是可调整的,每个元素应该水平填充容器宽度并且 grow 来填充它们之间的 space,如果该行的元素太多,则另外垂直堆叠。
问题是,当一行只有一个元素时,它会填满容器的整个宽度,这是 flex-grow: 1;
规则的原因。
如果我删除 flex-grow: 1;
规则,元素将停止增长并且不会填充它们之间的 space。
我想要的是使元素可增长以填充它们之间的 space 但不要填充容器的整个宽度。
预期结果:
article{
display: flex;
flex-wrap: wrap;
justify-content: space-between;
width: 800px;
border: 1px solid blue;
}
section{
min-width: 200px;
box-sizing: border-box;
flex-grow: 1;
margin: 10px;
padding: 10px;
border: 1px solid black;
}
<article>
<section>1</section>
<section>2</section>
<section>3</section>
<section>4</section>
</article>
使用例如 width: 30%
代替 flex-grow
和宽度 px:
article{
display: flex;
flex-wrap: wrap;
justify-content: space-between;
width: 800px;
border: 1px solid blue;
}
section{
min-width: 30%;
box-sizing: border-box;
margin: 10px;
padding: 10px;
border: 1px solid black;
}
<article>
<section>1</section>
<section>2</section>
<section>3</section>
<section>4</section>
</article>
我认为使用 css 网格会更好:
* {
box-sizing: border-box;
margin: 0;
padding:0;
}
article {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
gap: 15px;
width: 800px;
padding: 10px;
border: 1px solid blue;
}
section {
padding: 10px;
border: 1px solid black;
}