search

Home  >  Q&A  >  body text

Custom layout using CSS Grid: targeting specific elements

I need to reproduce this design using CSS Grid, and I've tried positioning specific grid elements to get the result, but without success.

This is what I have currently, I need to fix a few things but I want to get the structure right before that.

Attached code snippet:

.grid-container {
  display: grid;
  grid-template-columns: repeat(13, minmax(30px, auto));
  gap: 30px;
}

.grid-item {
  background-color: red;
  height: 50px;
  width: 50px;
}
<div class="grid-container">
  <div class="grid-item"></div>
  <div class="grid-item"></div>
  <div class="grid-item"></div>
  <div class="grid-item"></div>
  <div class="grid-item"></div>
  <div class="grid-item"></div>
  <div class="grid-item"></div>
  <div class="grid-item"></div>
  <div class="grid-item"></div>
  <div class="grid-item"></div>
  <div class="grid-item"></div>
  <div class="grid-item"></div>
  <div class="grid-item"></div>
  <div class="grid-item"></div>
  <div class="grid-item"></div>
  <div class="grid-item"></div>
  <div class="grid-item"></div>
  <div class="grid-item"></div>
  <div class="grid-item"></div>
  <div class="grid-item"></div>
  <div class="grid-item"></div>
  <div class="grid-item"></div>
  <div class="grid-item"></div>
  <div class="grid-item"></div>
  <div class="grid-item"></div>
  <div class="grid-item"></div>                                                
  <div class="grid-item"></div>                                                
  <div class="grid-item"></div>                                                
  <div class="grid-item"></div>                                                
  <div class="grid-item"></div>                                                
  <div class="grid-item"></div>                                                
  <div class="grid-item"></div>                                                
  <div class="grid-item"></div>                                                
  <div class="grid-item"></div>                                                
  <div class="grid-item"></div>                                                
  <div class="grid-item"></div>                                                
  <div class="grid-item"></div>                                                
  <div class="grid-item"></div>                                                
  <div class="grid-item"></div>                                                
  <div class="grid-item"></div>                                                
  <div class="grid-item"></div>                                                
  <div class="grid-item"></div>                                                
  <div class="grid-item"></div>                                                
  <div class="grid-item"></div>                                                             <div class="grid-item"></div>                                        
</div>

I've tried using grid-template-rows to modify the layout without success, any suggestions?

P粉144705065P粉144705065322 days ago342

reply all(1)I'll reply

  • P粉463418483

    P粉4634184832024-03-29 00:51:23

    .grid-container {
      display: grid;
      grid-template-columns: repeat(13, minmax(30px, auto));
      grid-template-rows: repeat(5, minmax(30px, auto));
      gap: 10px;
    }
    
    .grid-item {
      background-color: red;
      height: 50px;
      width: 50px;
    }
    
    .div1 {
      grid-area: 1 / 1 / 4 / 2;
      height: 100%;
    }
    
    .div38 {
      grid-area: 4 / 1 / 6 / 2;
      height: 100%;
    }
    
    .div39 {
      grid-area: 4 / 2 / 5 / 6;
      width: 100%;
    }
    
    .div40 {
      grid-area: 4 / 6 / 5 / 10;
      width: 100%;
    }
    
    .div41 {
      grid-area: 4 / 10 / 5 / 14;
      width: 100%;
    }
    
    .div42 {
      grid-area: 5 / 2 / 6 / 4;
      width: 100%;
    }
    
    .div43 {
      grid-area: 5 / 4 / 6 / 6;
      width: 100%;
    }
    
    .div44 {
      grid-area: 5 / 6 / 6 / 8;
      width: 100%;
    }
    
    .div45 {
      grid-area: 5 / 8 / 6 / 10;
      width: 100%;
    }
    
    .div46 {
      grid-area: 5 / 10 / 6 / 12;
      width: 100%;
    }
    
    .div47 {
      grid-area: 5 / 12 / 6 / 14;
      width: 100%;
    }

    reply
    0
  • Cancelreply