我有这种网格 struct ,并努力简化它,因为我需要无限的div.我try 了不同的方法,使用第n个子元素和网格跨度,但我就是做不到.

enter image description here

超文本标记语言

<div class="parent">
    <div class="div1">1</div>
    <div class="div2">2</div>
    <div class="div3">3</div>
    <div class="div4">4</div>
    <div class="div5">5</div>
    <div class="div6">6</div>
    <div class="div7">7</div>
    <div class="div8">8</div>
    <div class="div9">9</div>
    <div class="div10">10</div>
    <div class="div11">11</div>
    <div class="div12">12</div>
</div>

CSS

.parent {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    grid-template-rows: repeat(9, 1fr);
    grid-column-gap: 0px;
    grid-row-gap: 0px;
    background:#FFF;
}

.parent div {
    display:flex;
    align-items:center;
    justify-content:center;
    padding:50px;
    border: 1px solid red;
}

.div1 { grid-area: 1 / 1 / 2 / 2; }
.div2 { grid-area: 1 / 2 / 3 / 3; }
.div3 { grid-area: 3 / 2 / 4 / 3; }
.div4 { grid-area: 2 / 1 / 4 / 2; }
.div5 { grid-area: 4 / 1 / 5 / 2; }
.div6 { grid-area: 4 / 2 / 6 / 3; }
.div7 { grid-area: 6 / 2 / 7 / 3; }
.div8 { grid-area: 5 / 1 / 7 / 2; }
.div9 { grid-area: 7 / 1 / 8 / 2; }
.div10 { grid-area: 7 / 2 / 9 / 3; }
.div11 { grid-area: 9 / 2 / 10 / 3; }
.div12 { grid-area: 8 / 1 / 10 / 2; }

推荐答案

请注意重复的模式.

这意味着您只需定义每一项中的4个项的哪一列和/或多少行.

然后在栅格上使用密集设置,以确保它始终返回以使用空闲空间.

哦,如果您有可变数量的项目,请不要试图 for each 项目指定一个单独的类!

<div class="parent">
  <div>1</div>
  <div>2</div>
  <div>3</div>
  <div>4</div>
  <div>5</div>
  <div>6</div>
  <div>7</div>
  <div>8</div>
  <div>9</div>
  <div>10</div>
  <div>11</div>
  <div>12</div>
</div>
<style>
  .parent {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    grid-template-rows: repeat(9, 1fr);
    grid-column-gap: 0px;
    grid-row-gap: 0px;
    background: #FFF;
    grid-auto-flow: dense;
  }
  
  .parent div {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 50px;
    border: 1px solid red;
  }
  
  .parent>div:nth-child(2n) {
    grid-column: 2;
    grid-row: span 2;
  }
  
  .parent>div:nth-child(4n-1) {
    grid-column: 2;
  }
  
  .parent>div:nth-child(4n) {
    grid-row: span 2;
    grid-column: 1;
  }
</style>

Css相关问答推荐

如何获得特定位置的Divs以根据浏览器宽度正确调整大小

try 在Jekyll中使用多个SCSS文件时出错

CSS子网格不显示行间距

无法在 React 组件 (TypeScript) 中应用 Tailwind CSS 类

为什么align-content:start应用于单行项目?

使用带有 fr 单位的 calc 函数

我怎样才能让我所有的网格列的高度等于最短列的高度

在 React 中使用 CSS 动画 onClick()

如何在真实文本旁边制作文本阴影,使其看起来像 css 中的重复文本?

内部和外部 div 之间的像素大小的间隙

基于变量动态生成 CSS 类 - SCSS

使用css水平+垂直翻转/镜像图像

flexbox 布局中的 Padding-bottom/top

如何将页脚保持在屏幕底部

在 Vuejs 中拥有全局 CSS 的最佳方式

如何在浏览器的右下角放置一个div?

我应该如何组织我的 CSS 文件的内容?

通过 Bootstrap4 对列进行排序

@font-face src: local - 如果用户已经拥有本地字体,如何使用它?

CSS 中的星号属性是什么意思?