如何创建具有 3 列和无限数量项目的 CSS 网格?

Ron*_*dot 8 html css grid css-grid

我试图创建一个 CSS 网格,它有 3 列,我可以在其中添加任意数量的具有相同高度的“内容 DIV”,这些 DIV 将按顺序添加,如下所示:

[1][2][3]
[4][5][6]
[7][8]
Run Code Online (Sandbox Code Playgroud)

任何帮助,将不胜感激。

小智 16

网格布局必须有一个父元素,其显示属性设置为gridinline-grid

网格容器的直接子元素自动成为网格项。

尝试下面

<!DOCTYPE html>
<html>
<head>
<style>
.grid-container {
  display: grid;
  grid-template-columns: auto auto auto;
  background-color: #2196F3;
  padding: 10px;
}
.grid-item {
  background-color: rgba(255, 255, 255, 0.8);
  border: 1px solid rgba(0, 0, 0, 0.8);
  padding: 20px;
  font-size: 30px;
  text-align: center;
}
</style>
</head>
<body>

<h1>Grid Elements</h1>

<div class="grid-container">
  <div class="grid-item">1</div>
  <div class="grid-item">2</div>
  <div class="grid-item">3</div>  
  <div class="grid-item">4</div>
  <div class="grid-item">5</div>
  <div class="grid-item">6</div>  
  <div class="grid-item">7</div>
  <div class="grid-item">8</div>
  <div class="grid-item">9</div>  
</div>

</body>
</html>
Run Code Online (Sandbox Code Playgroud)


Nen*_*car 11

通过grid-template-columns: repeat(3, 1fr)在网格容器上使用,您将获得具有 3 列等宽的布局,并且网格布局默认情况下会使每行中的所有项目等高。

let n = $('.grid .item').last().text();

$('.grid').click(function() {
  const item = $('<div class="item">')
  const text = (n % 7 != 0 ? '' : ' Lorem ipsum dolor sit amet, consectetur adipisicing elit. Excepturi, corporis.')
  item.text(++n + text)
  $(this).append(item)
})
Run Code Online (Sandbox Code Playgroud)
.grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  grid-gap: 10px;
}
.item {
  border: 1px solid black;
}
Run Code Online (Sandbox Code Playgroud)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="grid">
  <div class="item">1 Lorem ipsum dolor sit amet, consectetur adipisicing elit. Excepturi, corporis.</div>
  <div class="item">2</div>
</div>
Run Code Online (Sandbox Code Playgroud)