Grid Examples

Example 3

Uses: display: inline-grid to make the grid container fit the contents.

1
2
3
4
5
6
CSS
.grid-container {
    display: inline-grid;
    grid-template-columns: auto auto auto;
    padding: 4px;
    background-color: indianred;
}

.grid-item {
    background-color: powderblue;
    border: 4px solid indianred;
    text-align: center;
    padding: 20px;
    font-size: 30px;
}

    
HTML

<div class="grid-container">
    <div class="grid-item">1</div>
    <div class="grid-item">2</div>
    <div class="grid-item">3</div>
    <div class="grid-item">4</div>
    <div class="grid-item">5</div>
    <div class="grid-item">6</div>
</div>
            

Example 4

Same as previous except different text in cell 2.

1
2 abcdefghijklmnop
3
4
5
6
CSS
.grid-container {
    display: inline-grid;
    grid-template-columns: auto auto auto;
    padding: 4px;
    background-color: indianred;
}

.grid-item {
    background-color: powderblue;
    border: 4px solid indianred;
    text-align: center;
    padding: 20px;
    font-size: 30px;
}

    
HTML

<div class="grid-container">
    <div class="grid-item">1</div>
    <div class="grid-item">2 abcdefghijklmnop</div>
    <div class="grid-item">3</div>
    <div class="grid-item">4</div>
    <div class="grid-item">5</div>
    <div class="grid-item">6</div>
</div>
            

Example 5

Similar to previous except columns set to 20%, 60%, 20% and set overflow-y:scroll. Not sure why column 2 doesn't expand to accomodate text and then make columns 1 & 3 20% of its size.

1
2 abcdefghijklmnopqrstuvwxyz
3
4
5
6
CSS
.grid-container2 {
    display: inline-grid;
    grid-template-columns: 20% 60% 20%;
    padding: 4px;
    background-color: indianred;
}

.grid-item {
    background-color: powderblue;
    border: 4px solid indianred;
    text-align: center;
    padding: 20px;
    font-size: 30px;
}

    
HTML

<div class="grid-container">
    <div class="grid-item">1</div>
    <div class="grid-item" style="overflow-y: scroll;">
         2 abcdefghijklmnopqrstuvwxyz
    </div>
    <div class="grid-item">3</div>
    <div class="grid-item">4</div>
    <div class="grid-item">5</div>
    <div class="grid-item">6</div>
</div>