Znalost moderního programování otevírá dveře budoucností.

Ukázkové cvičení krok za krokem: Responzivní karta projektů (CSS Grid)

Ukázkové cvičení krok

za krokem: „Responzivní

karta projektů“

(CSS Grid)

Cíl: vytvořit responzivní přehled „karet“ (např. projekty, produkty, články), který se sám přizpůsobí šířce obrazovky pomocí repeat(auto-fit, minmax()) a gap. Vycházíme z principů: aktivace gridu, definice sloupců/řádků, mezery, automatické rozmístění a responzivita.

Krok 1 – HTML kostra (kontejner + položky)

Vytvořte soubor index.html:


    <!doctype html>
    <html lang="cs">
    <head>
      <meta charset="utf-8" />
      <meta name="viewport" content="width=device-width, initial-scale=1" />
      <title>CSS Grid – Karty</title>
      <link rel="stylesheet" href="styles.css" />
    </head>
    <body>

      <main class="page">
        <h1>Moje projekty</h1>

        <section class="grid">
          <article class="card">
            <h2>Projekt 1</h2>
            <p>Krátký popis projektu.</p>
            <a class="btn" href="#">Detail</a>
          </article>

          <article class="card">
            <h2>Projekt 2</h2>
            <p>Krátký popis projektu.</p>
            <a class="btn" href="#">Detail</a>
          </article>

          <article class="card">
            <h2>Projekt 3</h2>
            <p>Krátký popis projektu.</p>
            <a class="btn" href="#">Detail</a>
          </article>

          <article class="card">
            <h2>Projekt 4</h2>
            <p>Krátký popis projektu.</p>
            <a class="btn" href="#">Detail</a>
          </article>
        </section>
      </main>

    </body>
    </html>
    

Krok 2 – Základní CSS (typografie a šířka stránky)

Vytvořte styles.css:


    * { box-sizing: border-box; }

    body {
      margin: 0;
      font-family: system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
      line-height: 1.5;
    }

    .page {
      max-width: 1100px;
      margin: 0 auto;
      padding: 24px;
    }

    h1 { margin: 0 0 16px; }
    

Krok 3 – Aktivace CSS Gridu a automatické rozmístění

Teď z kontejneru .grid uděláme mřížku a nastavíme 2 sloupce:


    .grid {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 16px;
    }
    

Výsledek: karty se automaticky rozloží do dvou sloupců a více řádků.

Krok 4 – Styl karet (aby bylo vidět rozvržení)

Doplníme jednoduchý vzhled karet:


    .card {
      border: 1px solid #ddd;
      border-radius: 12px;
      padding: 16px;
      background: #fff;
    }

    .card h2 { margin: 0 0 8px; }
    .card p  { margin: 0 0 12px; }

    .btn {
      display: inline-block;
      padding: 10px 12px;
      border-radius: 10px;
      text-decoration: none;
      border: 1px solid #222;
      color: #222;
    }
    

Krok 5 – Responzivita bez media queries (auto-fit + minmax)

Nahradíme pevné 2 sloupce responzivní variantou:


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

Princip: jakmile se na šířku nevejdou 2 (nebo 3) sloupce, grid sám sníží jejich počet a zachová čitelné minimum.

Krok 6 – „Zvýrazněná karta“ přes více sloupců (ruční umístění)

Chceme, aby první karta byla „hlavní“ a zabrala dva sloupce (na širší obrazovce).

1. Upravte první article na:


    <article class="card featured">
      <h2>Projekt 1 – hlavní</h2>
      <p>Výraznější projekt přes více sloupců.</p>
      <a class="btn" href="#">Detail</a>
    </article>
    

2. Doplňte do CSS:


    .featured {
      grid-column: 1 / -1; /* zabere celý řádek (všechny sloupce) */
    }
    

Tím ukazujete ruční řízení pozice přes grid-column (v materiálu uvedeno jako klíčová vlastnost).

Praktické cvičení pro žáky (45 minut): „Školní rozcestník“ v CSS Grid

Zadání

Navrhněte rozvržení stránky „Školní rozcestník“, které bude obsahovat:

1. Header (název školy)

2. Navigace (menu)

3. Hlavní obsah (karty s odkazy: Rozvrh, Suplování, Jídelna, Učebny, Projekty, Kontakty…)

4. Postranní panel (rychlé informace: „Aktuality“, „Dnes ve škole“)

5. Footer (copyright)

Rozvržení musí být vytvořeno pomocí CSS Grid a splnit podmínky níže. Využijte pojmy: display: grid, grid-template-columns, gap, grid-column/grid-row nebo grid-template-areas, a responzivitu přes auto-fit/minmax.

Technické požadavky (hodnoticí kritéria)

A. Layout (max 10 b)

Grid aktivován na hlavním kontejneru stránky (2 b)

Použité sloupce + mezery gap (2 b)

Rozložení pomocí grid-template-areas (doporučeno) nebo ruční grid-row/grid-column (3 b)

Header a footer přes celou šířku (3 b)

B. Sekce s kartami (max 10 b)

Karty v gridu, automatické rozmístění (2 b)

Responzivita pomocí repeat(auto-fit, minmax(...)) (4 b)

Jedna „zvýrazněná“ karta přes celý řádek nebo přes 2 sloupce (4 b)

C. Čitelnost a struktura (max 5 b)

Smysluplné názvy tříd, čisté odsazení (2 b)

Oddělené soubory index.html a styles.css (1 b)

Základní typografie a vizuální přehlednost (2 b)

Celkem: 25 bodů

Doporučená kostra HTML (žáci mohou použít)


    <main class="layout">
      <header class="header">Školní rozcestník</header>

      <nav class="nav">
        <a href="#">Domů</a>
        <a href="#">Studium</a>
        <a href="#">Projekty</a>
        <a href="#">Kontakt</a>
      </nav>

      <section class="cards">
        <article class="card featured">Rozvrh</article>
        <article class="card">Suplování</article>
        <article class="card">Jídelna</article>
        <article class="card">Učebny</article>
        <article class="card">Projekty</article>
        <article class="card">Kontakty</article>
      </section>

      <aside class="aside">
        <h2>Aktuality</h2>
        <ul>
          <li>Termín testu: pátek</li>
          <li>Exkurze: příští týden</li>
        </ul>
      </aside>

      <footer class="footer">© 2026</footer>
    </main>
    

Pokyny pro CSS (co musí žák doplnit)

1. Nastavte .layout jako grid a definujte oblasti (např. header/nav/cards/aside/footer).

2. Vytvořte rozvržení pro desktop: např. 2 sloupce (obsah + aside).

3. Pro .cards použijte grid s auto-fit/minmax.

4. Nastavte .featured tak, aby karta byla přes celý řádek (nebo přes více sloupců).

5. Přidejte gap a základní stylování.

Rozšíření pro rychlejší žáky (bonus +5 b)

Přidejte jednoduchý „hover efekt“ na karty (1–2 vlastnosti).

Zkuste upravit layout tak, aby se při úzké šířce aside přesunul pod karty (media query nebo úprava gridu).

PUBLIKOVÁNO
22.01.2026, 10:25
ODKAZ
https://www.weloveit.education/Article/20260122-Ukazkove-cviceni-krok-za-krokem-Responzivni-karta-projektu/
asfdasd
asfdasd
asfdasd
asfdasd
asfdasd
asfdasd

Začni hned teď
pracovat na zlepšení svých znalostí.

Vytvoř si vlastní síť zkušeností, přesně tak, jak potřebuješ.