如何使用CSS拆分动态组件?

dced5bon  于 2023-03-05  发布在  其他
关注(0)|答案(1)|浏览(107)

我如何使用CSS在动态组件中对照片进行划分?

第一个项目应该总是满的,其余的在下面的区域,如果你有2或3张照片,正确地划分空间
我尝试用网格组件来实现这一点,例如:

display: grid;
  grid-template-columns: 2fr 1fr;

&:first-of-type结合
但我没有成功
另一个具有相同组件的示例:

  • 我可以使用样式化组件来完成此操作
14ifxucb

14ifxucb1#

使用Flexbox的动态示例(如果不知道元素数量):

html,
body,
section {
  margin: 0;
  height: 100%;
}

section {
  display: flex;
  flex-flow: row wrap;
  gap: 1rem;
  margin: 1rem 1rem 4rem;
}

article {
  flex: 1 1 1px;
  display: grid;
  place-content: center;
  background-color: plum;
}

article:first-child {
  flex: 100%;
}
<section>
  <article>1</article>
  <article>2</article>
  <article>3</article>
</section>
<section>
  <article>1</article>
  <article>2</article>
  <article>3</article>
  <article>4</article>
</section>
<section>
  <article>1</article>
  <article>2</article>
  <article>3</article>
  <article>4</article>
  <article>5</article>
</section>

下面是一个简单的3个元素的示例,您可以将grid-column: span 2转换为:first-child
一个二个一个一个
您可以针对4个元素进行调整:

html,
body,
section {
  margin: 0;
  height: 100%;
}

section {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 1rem;
}

article {
  display: grid;
  place-content: center;
  background-color: plum;
}

article:first-child {
  grid-column: span 3;
}
<section>
  <article>1</article>
  <article>2</article>
  <article>3</article>
  <article>4</article>
</section>

相关问题