动态创建一个n列宽度相等的网格

问题描述 投票:1回答:1

使用SCSS,如何动态创建具有相等宽度的n列的grid

目前的做法:

// grid setup
$columns: 4;
$columnGap: 20px;
$rowGap: 30px;

// grid
display: grid;
grid-template-columns: repeat( $columns, auto );
grid-template-rows: auto;
grid-column-gap: $columnGap;
grid-row-gap: $rowGap;

这个问题是auto实际上不会产生相同宽度的列。相反,根据其内容,某些列可能更宽或更窄。

我想要的是所有列具有完全相同的宽度。

html css css3 sass css-grid
1个回答
3
投票

您可以使用grid-template-columns: repeat( $columns, 1fr) - 请参阅以下vanilla CSS中的演示,以证明它有效:

:root {
  --columns: 4;
  --columnGap: 20px;
  --rowGap: 30px;
}

.grid {
  display: grid;
  grid-template-columns: repeat(var(--columns), 1fr);
  grid-template-rows: auto;
  grid-column-gap: var(--columnGap);
  grid-row-gap: var(--rowGap);
}

.grid>div {
  background: aliceblue;
}
<div class="grid">
  <div>Some text here</div>
  <div>Some </div>
  <div>Some text</div>
  <div>Some text here</div>
  <div>Some text here</div>
  <div></div>
  <div>Some </div>
  <div>Some</div>
  <div>Some text here</div>
  <div>Some text</div>
  <div>Some text here</div>
</div>
© www.soinside.com 2019 - 2024. All rights reserved.