如何在大小相同的不同列中显示文章的不同部分?

How can I display different sections of an article in different equaly sized columns?

我正在尝试创建我的第一个网页,这对我来说越来越复杂了。
我试图在 3 个不同且大小相等的列中显示它,但我能够实现的最接近的是:

article {
  display: flex;
}
<article>

  <section id="sec1">
    <p> info </p>
  </section>

  <section id="sec2">
    <p> info </p>
  </section>

  <section id="sec3">
    <p> info </p>
  </section>

</article>

此表格充分分布了 3 列中的信息,但它们并没有占据相同的位置 space。 感谢您提供任何帮助或建议,谢谢。

您需要设置弹性项目。

section{flex-grow:1}

对于所有 flex 相关的东西,这是一个值得阅读的资源: https://css-tricks.com/snippets/css/a-guide-to-flexbox/

我个人会使用更容易设置样式的网格来解决此问题。您只需添加 article { display: grid; grid-template-columns: repeat(3, 1fr); }.
这将创建 3 个大小相同的列。

然后您可以添加 grid-gap 以添加间距来分隔列,而无需您自己实际计算任何内容。

article {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  grid-gap: 10px;
}

/* for styling purpose only */
section {
  border: 1px solid red;
  padding: 5px;
}
<article>

  <section id="sec1">
    <p> info </p>
  </section>

  <section id="sec2">
    <p> info </p>
  </section>

  <section id="sec3">
    <p> info </p>
  </section>

</article>

如果你想使用flexbox那么你也可以使用gap-属性。但是重要的是,您需要定义该部分的宽度。要么使用 width: 33.33%; ,但是在大屏幕上可能会导致像素不准确。更好的方法是使用 width: calc(100% / 3);

article {
  display: flex;
  gap: 10px;
}

article > section {
  width: calc(100% /3);
}

/* for styling purpose only */
section {
  border: 1px solid red;
  padding: 5px;
}
<article>

  <section id="sec1">
    <p> info </p>
  </section>

  <section id="sec2">
    <p> info </p>
  </section>

  <section id="sec3">
    <p> info </p>
  </section>

</article>

您应该将带有 flex-grow: 1 的部分设置为占据整个 space 和 flex-basis: 0 以平均设置列的宽度。看例子:

假设您有 3 个内容不相等的列:

article {
  display: flex;
}

article section {
  flex-grow: 1;
  flex-basis: 0;
}

#sec1 {
  background: red;
}

#sec2 {
  background: yellow;
}

#sec3 {
  background: green;
}
<article>

  <section id="sec1">
    <p> Lorem ipsum dolor sit amet, consectetur adipisicing elit. Aspernatur perferendis veritatis dolore natus debitis </p>
  </section>

  <section id="sec2">
    <p> Lorem ipsum dolor sit amet, consectetur adipisicing elit. Aspernatur perferendis veritatis dolore natus debitis, iusto aliquid necessitatibus sint. </p>
  </section>

  <section id="sec3">
    <p> Lorem ipsum dolor sit amet, consectetur adipisicing elit. Aspernatur perferendis veritatis dolore natus debitis, iusto aliquid necessitatibus sint. Impedit aliquid, fugit consequatur hic, praesentium ab! Provident qui, laudantium suscipit. </p>
  </section>

</article>