使用纯CSS创建CSS网格布局

我试图创建一个布局使用 CSS 网格像图像(任何项目是正方形):

我试图创建一个布局使用 CSS 网格像图像(任何项目是正方形):

CSS grid layout pattern

我正在尝试的代码:

CSS公司

  .grid-container {
    padding: 20px;
    display: grid;
    grid-gap: 20px;
    grid-auto-rows: 1fr;
    grid-template-columns: repeat(2, 1fr);
  }
  .item {
    position: relative;
    background: #ccc;
  }
  /* Square */
  .item:after {
    content: '';
    display: block;
    padding-top: 100%;
  }
  @media screen and (min-width: 640px) and (max-width: 1023px) {
    /* 640 ~ 1023 */
    .grid-container {
      grid-template-columns: repeat(3, 1fr);
    }
    .item:nth-child(6n + 1) {
      grid-column: span 2 / 3;
      grid-row: span 2;
    }
    .item:nth-child(6n + 6) {
      grid-column: span 2 / 3;
      grid-row: span 2;
      grid-column: 2 / 4;
    }
    .item:nth-child(6n + 5) {
      grid-column: span 1 / 2;
    }
  }
  @media print, screen and (min-width: 1024px) {
    /* 1024+ */
    .grid-container {
      grid-template-columns: repeat(4, 1fr);
    }
    .item:nth-child(10n + 1) {
      grid-column: span 2 / 3;
      grid-row: span 2;
    }
    .item:nth-child(10n) {
      grid-column: span 2 / 3;
      grid-row: span 2;
      grid-column-end: 5;
    }
    .item:nth-child(10n + 8) {
      grid-column-start: 1;
    }
  }

你可以在这里找到我的代码:JSFiddle

Result show: CSS grid layout pattern

我认为使用position: absolute与计算网格位置的 JavaScript 可以解决问题。

如何使用纯 CSS 创建这个布局?

8

你可以像下面一样尝试。你几乎很好,缺少grid-auto-flow:dense;以允许该项目填充所有空格。

.grid-container {
  padding: 20px;
  display: grid;
  grid-gap: 20px;
  grid-auto-rows: 1fr;
  grid-template-columns: repeat(2, 1fr);
  grid-auto-flow:dense;
  counter-reset: alList;
}
.item {
  aspect-ratio: 1;
  background: #ccc;
  display: flex;
}
/* Number */
.item:before {
  counter-increment: alList;
  content: counter(alList);
  margin: auto;
  font-size: 40px;
  color: #000000;
}
@media screen and (min-width: 40em) and (max-width: 63.99875em) {
  /* 640 ~ 1023 */
  .grid-container {
    grid-template-columns: repeat(3, 1fr);
  }
  .item:nth-child(6n + 1),
  .item:nth-child(6n + 6){
    grid-area: span 2/span 2;
  }
  .item:nth-child(6n + 5) {
    grid-column: 1;
  }
}
@media print, screen and (min-width: 64em) {
  /* 1024+ */
  .grid-container {
    grid-template-columns: repeat(4, 1fr);
  }
  .item:nth-child(10n + 1),
  .item:nth-child(10n + 10){
    grid-area: span 2/span 2;
  }
  .item:nth-child(10n + 8) {
    grid-column: 1;
  }
  .item:nth-child(10n + 9) {
    grid-column: 2;
  }
}
<div cl="grid-container">
  <div cl="item"></div>
  <div cl="item"></div>
  <div cl="item"></div>
  <div cl="item"></div>
  <div cl="item"></div>
  <div cl="item"></div>
  <div cl="item"></div>
  <div cl="item"></div>
  <div cl="item"></div>
  <div cl="item"></div>
  <div cl="item"></div>
  <div cl="item"></div>
  <div cl="item"></div>
  <div cl="item"></div>
  <div cl="item"></div>
  <div cl="item"></div>
</div>

本站系公益性非盈利分享网址,本文来自用户投稿,不代表码文网立场,如若转载,请注明出处

(748)
如何使用WinCE5.0RTOS在ATL应用程序中加载第三方.dll(COMDLL )
上一篇
在Python中是否有一个用于在Windows10上即时关闭的命令
下一篇

相关推荐

  • css设置滚动条宽度设置:This is a title

    CSS设置滚动条宽度的方法:使用CSS3的。-webkit-属性:…

    2023-06-06 10:53:01
    0 82 43
  • css 子样式:标题

    CSS 子样式是指在父样式的基础上,对其子元素进行单独定义的样式。它可以使用类选择器、ID 选择器或者属性选择器来定义,如下所示:…

    2023-04-13 14:42:51
    0 85 88
  • css 间隔:如何利用 CSS 进行间隔调整

    示例示例CSS 间隔是指在 CSS 中使用的间距属性,它可以用来设置元素之间的距离。有几种常用的 CSS 间隔属性,包括:…

    2023-06-05 02:47:09
    0 73 83
  • css导入字体:标题

    示例示例CSS导入字体可以通过@font-face规则来实现,代码示例如下:…

    2023-04-22 12:42:42
    0 57 88
  • css背景图片:Unlock the Power of Creative Backgrounds

    示例示例CSS背景图片是一种使用CSS样式来定义HTML元素的背景图像。它可以让你在网页中添加图片,而不需要使用标签。CSS背景图片的语法如下:…

    2023-04-27 07:58:21
    0 26 45
  • sci和cssci哪个高级一种新的科学出版标准

    SCI和CSSCI是两个学术期刊收录索引,它们都用于衡量学术期刊的发表质量。SCI(Science Index)是由美国科学信息研究所(ISI)提供的一种学术期刊收录索引,它收录了来自全球各地的学术期刊,并以引文索引的方式收录其中的文章。SCI的收录索引覆盖了超过8000种期刊,其中包括了许多国际一流期刊,如Nature、Science、Cell、PNAS等。…

    2023-05-14 11:16:30
    0 34 70
  • css文本垂直居中:标题

    CSS文本垂直居中的方法有很多,以下是其中常用的几种:使用 line-height 属性:…

    2023-05-09 10:53:27
    0 19 29
  • css选择第三个元素:Third Element

    CSS选择第三个元素的代码如下:上述代码中,element表示要选择的元素,nth-child()是CSS中的伪类,用于选择某个父元素的第n个子元素,圆括号中的数字表示第几个,上述代码表示选择第三个元素。…

    2023-04-12 07:21:21
    0 26 11

发表评论

登录 后才能评论

评论列表(36条)