CSS сетка с автозаполнением и автоматическим размером - PullRequest
1 голос
/ 28 января 2020

Я пытаюсь использовать CSS сетку с grid-template-columns: repeat (auto-fill, auto) , ячейки устанавливаются на максимальную ширину, в результате чего по одному элементу в строке.

Можно ли автоматически устанавливать ширину ячейки сетки по ширине элементов? Я пробовал inline-grid / grid-auto-flow: column, но элементы не переносятся с этими свойствами.

.wrapper {
  display: grid;
  grid-gap: 10px;
  grid-template-columns: repeat(auto-fill, auto);
  color: #444;
}

.box1 {
  background-color: #444;
  color: #fff;
  border-radius: 5px;
  padding: 20px;
  font-size: 150%;
  width: 250px;
}

.box2 {
  background-color: #444;
  color: #fff;
  border-radius: 5px;
  padding: 20px;
  font-size: 150%;
  width: 350px;
}
<div class="wrapper">
  <div class="box1 a">A</div>
  <div class="box1 b">B</div>
  <div class="box2 c">C</div>
  <div class="box2 d">D</div>
  <div class="box1 e">E</div>
  <div class="box2 f">F</div>
  <div class="box1 g">G</div>
  <div class="box2 h">H</div>
  <div class="box1 i">I</div>
  <div class="box2 j">J</div>
  <div class="box2 k">K</div>
  <div class="box2 l">L</div>
  <div class="box1 m">M</div>
</div>

1 Ответ

1 голос
/ 29 января 2020

Просто переместите ширину элементов внутри grid-template-columns

.wrapper {
  display: grid;
  grid-gap: 10px;
  grid-template-columns: repeat(auto-fill, 250px);
  color: #444;
}

.box {
  background-color: #444;
  color: #fff;
  border-radius: 5px;
  padding: 20px;
  font-size: 150%;
}
<div class="wrapper">
  <div class="box a">A</div>
  <div class="box b">B</div>
  <div class="box c">C</div>
  <div class="box d">D</div>
  <div class="box e">E</div>
  <div class="box f">F</div>
  <div class="box g">G</div>
  <div class="box h">H</div>
  <div class="box i">I</div>
  <div class="box j">J</div>
  <div class="box k">K</div>
  <div class="box l">L</div>
  <div class="box m">M</div>
</div>
...