Create CSS grid layout with pure CSS

前端 未结 1 509
孤独总比滥情好
孤独总比滥情好 2020-12-11 08:03

I trying to create a layout using CSS Grid like the image (any item is square):

Code I\'m trying:

CSS

  .grid-container {
    paddin         


        
相关标签:
1条回答
  • 2020-12-11 08:20

    You can try like below. You were almost good, missing grid-auto-flow:dense; to allow the item to fill all the spaces.

    .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: albumList;
    }
    
    .item {
      position: relative;
      background: #ccc;
      display:flex;
    }
    
    /* Number */
    .item:before {
      counter-increment: albumList;
      content: counter(albumList);
      margin:auto;
      font-size: 40px;
      color: #000000;
    }
    
    /* Square */
    .item:after {
      content: '';  
      padding-top: 100%;
    }
    
    @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-row:span 2;
        grid-column: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-row:span 2;
        grid-column:span 2;
      }
      .item:nth-child(10n + 8) {
        grid-column:1;
      }
      .item:nth-child(10n + 9) {
        grid-column:2;
      }
    }
    <div class="grid-container">
      <div class="item"></div>
      <div class="item"></div>
      <div class="item"></div>
      <div class="item"></div>
      <div class="item"></div>
      <div class="item"></div>
      <div class="item"></div>
      <div class="item"></div>
      <div class="item"></div>
      <div class="item"></div>
      <div class="item"></div>
      <div class="item"></div>
      <div class="item"></div>
      <div class="item"></div>
      <div class="item"></div>
      <div class="item"></div>
    </div>

    0 讨论(0)
提交回复
热议问题