css - 不要填充可增长柔性容器的宽度

标签 css flexbox css-grid

我正在构建一个 flex 盒容器,容器宽度可调整大小,每个元素应水平填充容器宽度并增长以填充它们之间的空间,并另外堆叠如果该行的元素太多,则垂直。

问题是,当一行包含单个元素时,它会填充容器的整个宽度,这就是 flex-grow: 1; 规则的原因。

enter image description here

如果我删除 flex-grow: 1; 规则,元素将停止增长并且不会填充它们之间的空间。

enter image description here

我想要的是使元素可增长以填充它们之间的空间,但不要填充容器的整个宽度。

预期结果: enter image description here

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>

最佳答案

我认为使用 css grid 会更好:

* {
  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;
}

关于css - 不要填充可增长柔性容器的宽度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70946417/

相关文章:

html - 任何字体都可以用作网络字体吗(特别是用于 HTML 电子邮件)

jquery - 滚动到某个点后垂直定位DIV

html - 左上对齐按钮文本

css - 当父级/浏览器收缩时收缩子元素相对定位,父级使用溢出

css - 当浏览器视口(viewport)缩小时,如何防止我的列堆叠

html - 有没有直接的方法来定位网格模板区域中的空网格单元格 (.)?

html - h1 在 firefox 的网格布局中具有空大小

html - 在整个页面而不是在框架内打开链接

javascript - 如何将图表详细信息放置在响应多个设备的图表旁边?

css - 尝试将文本添加到 CSS 网格