Docs LogoDocs

Advanced CSS Grid - Complex Grid Layouts

Documentation for Advanced CSS Grid - Complex Grid Layouts.

Advanced CSS Grid - Complex Grid Layouts

What is Advanced CSS Grid?

Advanced Grid techniques go beyond basic grid layouts to create complex, responsive designs with named areas, auto-placement, and advanced sizing.

Advanced Grid Techniques

1. Named Grid Lines

.grid {
    display: grid;
    grid-template-columns: [start] 1fr [content-start] 2fr [content-end] 1fr [end];
    grid-template-rows: [header-start] auto [header-end content-start] 1fr [content-end footer-start] auto [footer-end];
}

.header {
    grid-column: start / end;
    grid-row: header-start / header-end;
}

.main {
    grid-column: content-start / content-end;
    grid-row: content-start / content-end;
}

2. Grid Template Areas (Advanced)

.layout {
    display: grid;
    grid-template-columns: 200px 1fr 200px;
    grid-template-rows: auto 1fr auto;
    grid-template-areas:
        "header header header"
        "sidebar main widgets"
        "footer footer footer";
    gap: 20px;
    min-height: 100vh;
}

.header { grid-area: header; }
.sidebar { grid-area: sidebar; }
.main { grid-area: main; }
.widgets { grid-area: widgets; }
.footer { grid-area: footer; }

/* Responsive */
@media (max-width: 768px) {
    .layout {
        grid-template-columns: 1fr;
        grid-template-areas:
            "header"
            "main"
            "sidebar"
            "widgets"
            "footer";
    }
}

3. Auto-Fit and Auto-Fill

/* Auto-fit: Collapses empty tracks */
.grid-auto-fit {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
    gap: 20px;
}

/* Auto-fill: Keeps empty tracks */
.grid-auto-fill {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
    gap: 20px;
}

4. Dense Packing

.masonry-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    grid-auto-rows: 100px;
    grid-auto-flow: dense; /* Fill gaps */
    gap: 10px;
}

.item-large {
    grid-row: span 2;
    grid-column: span 2;
}

5. Subgrid

.parent-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
}

.child-grid {
    display: grid;
    grid-template-columns: subgrid; /* Inherit parent columns */
    grid-column: span 3;
}

6. Implicit Grid

.grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    grid-auto-rows: minmax(100px, auto); /* Auto-generated rows */
    grid-auto-flow: row; /* or column, dense */
}

Complex Layout Patterns

Pattern 1: Magazine Layout

.magazine {
    display: grid;
    grid-template-columns: repeat(6, 1fr);
    grid-auto-rows: 150px;
    gap: 15px;
}

.featured {
    grid-column: span 4;
    grid-row: span 3;
}

.article-1 {
    grid-column: span 2;
    grid-row: span 2;
}

.article-2 {
    grid-column: span 2;
    grid-row: span 1;
}

Pattern 2: Dashboard Grid

.dashboard {
    display: grid;
    grid-template-columns: repeat(12, 1fr);
    grid-template-rows: auto 1fr auto;
    gap: 20px;
    height: 100vh;
}

.header {
    grid-column: 1 / -1;
}

.sidebar {
    grid-column: 1 / 3;
    grid-row: 2;
}

.main {
    grid-column: 3 / 10;
    grid-row: 2;
}

.widgets {
    grid-column: 10 / -1;
    grid-row: 2;
}

.footer {
    grid-column: 1 / -1;
}

Pattern 3: Responsive Card Grid

.card-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
    gap: 20px;
}

.card-featured {
    grid-column: span 2;
    grid-row: span 2;
}

@media (max-width: 768px) {
    .card-featured {
        grid-column: span 1;
        grid-row: span 1;
    }
}

Last updated on July 15, 2026

On this page