Search code examples
csstwitter-bootstrapgridflexboxcss-grid

How can i create a Bootstrap like 12 column ( only grid ) grid system using new CSS GRID Layout


How can I create a bootstrap-like 12 column grid using the new CSS GRID technology? Can anybody please show me a demo how to do it? I am really getting confused with this new technology. I want to make a simple 12 column grid-like bootstrap using CSS grid. What my approach should be for this?


Solution

  • display:grid; allows you to create columns and also rows.

    You need to define a grid of 12 columns and set up classes to span so many rows and so many columns, so alike bootsrap classes you can size your element within from 1th to 12th bits of a row, but , unlike bootstrap, it allows you also to span element through rows without extra markup/inbrication:

    example:https://codepen.io/gc-nomade/pen/RLjdrM

    .grid {
      margin: 1em;
      border: solid lightgray;
      background: lightgray;
      display: grid;
      grid-template-columns: repeat(12, 1fr);
      grid-gap: 2px;
      counter-reset: div;
    }
    
    .grid div {
      border: solid;
      text-align: center;
    }
    
    .grid div:before {
      counter-increment: div;
      content: 'N°' counter(div);
    }
    
    .grid div[class]:after {
      display: block;
      text-align: center;
      background: lightblue;
      content: "Class applied : "attr(class);
      color: crimson;
    }
    
    
    /* spanning cols, complete values missing */
    
    .col-2 {
      grid-column: auto/span 2;
    }
    
    .col-3 {
      grid-column: auto/span 3;
    }
    
    .col-6 {
      grid-column: auto/span 6;
    }
    
    .col-8 {
      grid-column: auto/span 8;
    }
    
    
    /* spanning rows , complete values missing*/
    
    .row-2 {
      grid-row: auto/span 2;
    }
    <div class="grid">
      <div></div>
      <div></div>
      <div></div>
      <div></div>
      <div></div>
      <div></div>
      <div></div>
      <div></div>
      <div></div>
      <div></div>
      <div></div>
      <div></div>
    </div>
    <div class="grid">
      <div class="col-3"></div>
      <div class="col-3"></div>
      <div class="col-3"></div>
      <div class="col-3"></div>
      <div class="col-6"></div>
      <div class="col-6"></div>
      <div class="col-2 row-2"></div>
      <div class="col-8"></div>
      <div class="col-2 row-2"></div>
      <div class="col-3"></div>
      <div class="col-2"></div>
      <div class="col-3"></div>
    </div>

    Here is 2 usefull link to start playing with CSS grids layout :

    https://css-tricks.com/snippets/css/complete-guide-grid/

    https://gridbyexample.com/examples/