Reszponzív Webdizájn (Media Queries)

Egy weboldal megjelenése asztali monitoron, tableten és mobilon

A 2000-es években a webfejlesztőknek könnyű dolguk volt: mindenki 1024x768 pixeles asztali monitorokon netezett. Ma a forgalom több mint 60%-a mobiltelefonokról érkezik, a képernyőméretek pedig az okosóráktól a 4K-s tévékig terjednek. Egy modern weboldalnak minden eszközön tökéletesen kell megjelennie. Ezt hívjuk Reszponzív Webdizájnnak (RWD).

A Google és a Mobile-First Indexing

Mielőtt belemegyünk a kódba, egy kritikus SEO tény: A Google ma már kizárólag a weboldalad mobilos verzióját nézi, amikor eldönti, hányadik helyre rangsoroljon a keresőben. Ha az oldalad asztali gépen gyönyörű, de mobilon szétesik, olvashatatlanul kicsi a betű, vagy egymásra csúsznak a gombok, a Google kíméletlenül hátrasorol.

Az alapfeltétel: A Viewport Meta Tag

Ahogy a HTML kurzusban tanultuk, a reszponzivitás nulladik lépése, hogy a HTML fájlod <head> szekciójában ott legyen ez a sor:

<meta name="viewport" content="width=device-width, initial-scale=1.0">

Enélkül a mobilböngészők megpróbálják az asztali nézetet lekicsinyíteni a telefon képernyőjére, ami olvashatatlan eredményt szül.

A Varázslat: CSS Media Queries

A Media Query (Média lekérdezés) egy CSS technika, amivel feltételeket szabhatunk a stíluslapunkban. Azt mondjuk a böngészőnek: "Ha a képernyő szélessége kisebb, mint X pixel, akkor alkalmazd ezeket az új CSS szabályokat, és írd felül a régieket."

A szintaxis a @media szabállyal kezdődik:

/* Alapértelmezett asztali nézet (3 oszlopos Grid) */
.tartalom-racs {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap: 20px;
}

/* Ha a képernyő szélessége 768 pixel vagy annál KISEBB (Tabletek és mobilok) */
@media (max-width: 768px) {
    .tartalom-racs {
        /* Felülírjuk a rácsot 1 oszloposra */
        grid-template-columns: 1fr; 
    }
    
    h1 {
        /* Kisebbre vesszük a főcímet mobilon */
        font-size: 2rem; 
    }
}

A "Mobile-First" (Mobilra Elsőként) Megközelítés

A fenti példában az asztali nézetet írtuk meg először, és a max-width segítségével butítottuk le mobilra. Ezt hívják Desktop-First megközelítésnek. A modern fejlesztők pont fordítva csinálják!

A Mobile-First elv lényege, hogy az alap CSS kód a mobiltelefonokra íródik (mivel ez a leggyakoribb és legfontosabb nézet). Ezután min-width (minimum szélesség) Media Query-ket használunk, hogy ahogy nő a képernyő, úgy adjunk hozzá komplexebb elrendezéseket.

/* 1. ALAPÉRTELMEZETT (Mobil nézet) */
.tartalom-racs {
    display: grid;
    grid-template-columns: 1fr; /* Mobilon 1 oszlop, egymás alatt */
    gap: 10px;
}

/* 2. TABLET NÉZET (Ha a képernyő legalább 768px széles) */
@media (min-width: 768px) {
    .tartalom-racs {
        grid-template-columns: 1fr 1fr; /* Tableten 2 oszlop */
    }
}

/* 3. ASZTALI NÉZET (Ha a képernyő legalább 1024px széles) */
@media (min-width: 1024px) {
    .tartalom-racs {
        grid-template-columns: 1fr 1fr 1fr; /* Asztali gépen 3 oszlop */
        gap: 30px;
    }
}

Miért jobb a Mobile-First? Mert a mobiltelefonok processzora gyengébb. Ha a mobilnak nem kell letöltenie és feldolgoznia a bonyolult asztali CSS szabályokat (hogy aztán azonnal felülírja őket), az oldal sokkal gyorsabban fog betölteni. A sebesség pedig jobb SEO helyezést jelent.

← Előző lecke Következő lecke: CSS Változók →