Použití mřížky CSS pro rozvržení ve stylu časopisu

CSS vám nabízí značnou flexibilitu při tvorbě vizuálně přitažlivých a adaptabilních rozvržení. Rozvržení inspirovaná časopisy představují kombinaci textového a obrazového obsahu v atraktivním a poutavém uspořádání, díky čemuž jsou velmi populární.

CSS Grid poskytuje potřebné nástroje a precizní kontrolu k dosažení takového uspořádání, což z něj dělá výbornou techniku, kterou se vyplatí naučit.

Co jsou rozvržení ve stylu časopisu?

Rozvržení ve stylu časopisu využívají strukturu podobnou mřížce k organizaci obsahu do sloupců a řádků.

Jsou ideální pro prezentaci různorodého obsahu, jako jsou články, obrázky a reklamy, a to organizovaným a poutavým způsobem.

Pochopení CSS Grid

CSS Grid je mocný nástroj pro rozvržení, který umožňuje umísťovat prvky do dvourozměrného prostoru, což usnadňuje tvorbu sloupců a řádků.

U tohoto typu rozvržení hrají klíčovou roli dvě základní složky: kontejner mřížky, který definuje strukturu mřížky, a položky mřížky, což jsou podřízené prvky kontejneru.

Zde je jednoduchý příklad, jak můžete s CSS Grid vytvořit mřížku 3×3:

.grid-container {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
}
.grid-item {
    background-color: #f76a6a;
    padding: 20px;
}

Tento kód definuje mřížkový kontejner se třemi stejně širokými sloupci a 20px mezerou mezi jednotlivými položkami. Výsledek je následující:

Nastavení struktury HTML

Pro rozvržení ve stylu časopisu budete potřebovat dobře strukturovaný HTML dokument. Doporučuje se použít sémantické elementy jako

a

pro uspořádání obsahu. Zde je dobrý start:
<section class="magazine-layout">
    <article>
        <img src="https://source.unsplash.com/random/?city,night" />
        <p>Nadpis článku</p>
    </article>
    <article>
        <img src="https://source.unsplash.com/random/?city,day" />
        <p>Nadpis článku</p>
    </article>
    <article>
        <img src="https://source.unsplash.com/random/?animal" />
        <p>Nadpis článku</p>
    </article>
    <article>
        <img src="https://source.unsplash.com/random/?book" />
        <p>Nadpis článku</p>
    </article>
    <article>
        <img src="https://source.unsplash.com/random/?food" />
        <p>Nadpis článku</p>
    </article>
</section>

Definování kontejneru mřížky

Pro vytvoření mřížky pro rozvržení ve stylu časopisu přidejte následující CSS:

.magazine-layout {
    height: 100%;
    max-width: 130rem;
    margin: 0 auto;
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
    grid-template-rows: repeat(auto-fit, minmax(250px, 1fr));
    gap: 2rem;
    padding: 2rem;
}

Toto CSS specifikuje, že element s třídou .magazine-layout je kontejner mřížky, a to pomocí deklarace display: grid.

Vlastnosti grid-template-columns a grid-template-rows využívají kombinaci funkcí repeat, auto-fit a minmax. To zajistí, že sloupce a řádky budou mít šířku a výšku minimálně 250 pixelů a flexibilně se přizpůsobí dostupnému prostoru.

Umístění položek mřížky

Nyní stylizujte každý článek a jeho obsah, aby vznikly atraktivní prvky ve stylu miniatur:

article {
    overflow: hidden;
    border-radius: 0.5rem;
    position: relative;
    color: #fff;
}
.article img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    max-height: 400px;
}
.article p {
    position: absolute;
    bottom: 0;
    left: 0;
    padding: 2rem;
    background: #333333c1;
    font-size: 2rem;
    border-radius: 0.5rem;
}

V tomto okamžiku by vaše webová stránka měla vypadat přibližně takto:

Vytváření rozvržení ve stylu časopisu

Pro dosažení autentického vzhledu ve stylu časopisu přidejte CSS styly, které rozloží jednotlivé články v libovolném pořadí:

.article:nth-child(1) {
    grid-column: 1 / span 3;
}
.article:nth-child(4) {
    grid-column: 2 / span 2;
}

Vaše stránka by nyní měla vypadat takto:

Responzivní design s CSS mřížkou

Jednou z předností CSS Grid je jeho vestavěná schopnost adaptace. Pomocí media queries můžete upravit rozvržení pro různé velikosti obrazovky. Například:

@media screen and (max-width: 1100px) {
    .article:nth-child(3) {
        grid-column: 2 / span 2;
    }
    .article:nth-child(5) {
        grid-row: 3 / span 1;
    }
}

@media screen and (max-width: 600px) {
    .article:nth-child(2),
    .article:nth-child(3),
    .article:nth-child(4),
    .article:nth-child(5) {
        grid-column: 1 / span 3;
    }
}

Tyto media queries přepínají mezi různými definicemi rozvržení tak, aby co nejlépe odpovídaly velikosti obrazovky zařízení. Konečné rozvržení se tak přizpůsobí různým velikostem:

Transformace rozvržení s pomocí CSS Grid

CSS Grid je flexibilní nástroj, který lze využít k vytvoření rozvržení ve stylu časopisu s adaptací na různé velikosti obrazovky. Umožňuje definovat struktury mřížky, umísťovat položky a upravovat rozvržení dle potřeby.

Experimentujte s různými konfiguracemi mřížky a styly, abyste dosáhli ideálního rozvržení pro svůj web inspirovaný časopisy.