2024. szeptember 9., hétfő

13 Frontend - kaszkádolás

 A @layer at-rule a CSS egy újabb funkciója, amely a CSS rétegeket definiálja és sorrendbe állítja. Ez a funkció még nem minden böngészőben elérhető, de hasznos lehet komplex stíluslapok kezelésekor.

Mi az a @layer?

A @layer lehetővé teszi, hogy a CSS szabályokat különböző rétegekre osszuk, így könnyebb kezelni, melyik réteg (stíluslap) érvényesül a végén. A rétegek sorrendje meghatározza, melyik stílus alkalmazódik, ha több rétegben is léteznek azonos szelektorok.

Hogyan működik?

  • Definiáld a rétegeket: A @layer segítségével különböző rétegeket definiálhatsz, például alapértelmezett stílusokat, komponens szintű stílusokat és oldal-specifikus stílusokat.
  • Állítsd be a rétegek sorrendjét: A rétegek sorrendje a CSS szabályok alkalmazási sorrendjét határozza meg. Az utoljára betöltött réteg felülírja a korábban betöltött rétegek szabályait.

Példa a @layer használatára

/* Alapértelmezett stílusok rétege */
@layer base {
    body {
        font-family: Arial, sans-serif;
        margin: 0;
        padding: 0;
        color: #333;
    }
}

/* Komponens stílusok rétege */
@layer components {
    .button {
        background-color: #007bff;
        color: white;
        padding: 10px 20px;
        border: none;
        border-radius: 5px;
    }
}
 
/* Oldal-specifikus stílusok rétege */
@layer pages {
    .hero {
        background-color: #f4f4f4;
        padding: 20px;
        text-align: center;
    }
}
  • Alapértelmezett stílusok (base): Ezek a stílusok az alapvető weboldal beállításokat tartalmazzák.
  • Komponens stílusok (components): Itt találhatók a különböző komponensek, például gombok stílusai.
  • Oldal-specifikus stílusok (pages): Oldalspecifikus beállításokat tartalmaz, például a hero szakasz stílusait.

Hogyan működik a sorrend?

Az @layer segítségével a CSS rétegeket sorrendbe állíthatjuk, amely meghatározza, melyik réteg stílusai érvényesülnek a végén. Ha egy elemre vonatkozóan ugyanazt a stílust több rétegben is definiáljuk, az utolsó betöltött réteg stílusai lesznek érvényesek.

Példa:

/* base réteg */
@layer base {
    .button {
        background-color: red; /* Alapértelmezett háttérszín */
    }
}
/* components réteg */
@layer components {
    .button {
        background-color: blue; /* Felülírja az alapértelmezett háttérszínt */
    }
}

Ebben az esetben a .button háttérszíne kék lesz, mert a components réteg az utolsó, és felülírja a base réteg beállításait.

Előnyök és Használat

  • Modularitás: A @layer segítségével különböző stíluslapokat modulárisan kezelhetsz, ami könnyebbé teszi a nagyobb projektek kezelését.
  • Sorrend ellenőrzése: Lehetővé teszi a stílusok alkalmazási sorrendjének pontos ellenőrzését.

Összegzés

  • @layer: Lehetővé teszi a CSS szabályok rétegekre osztását és a rétegek sorrendjének meghatározását.
  • Rétegek: Az alapértelmezett, komponens és oldal-specifikus stílusok külön rétegekben tárolhatók, ami tisztább és karbantarthatóbb kódot eredményez.

A példafeladat megoldásához másold be az alábbi html-t:

<!DOCTYPE html>

<html lang="en">

<head>

    <meta charset="UTF-8">

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

    <title>Komplett Weboldal</title>

    <link rel="stylesheet" href="styles.css">

</head>

<body>

    <header>

        <h1>Komplett Weboldal</h1>

        <nav>

            <ul>

                <li><a href="#">Kezdőlap</a></li>

                <li><a href="#">Szolgáltatások</a></li>

                <li><a href="#">Kapcsolat</a></li>

            </ul>

        </nav>

    </header>

    <main>

        <section class="hero">

            <h2>Üdvözlünk az oldalon!</h2>

            <p>Ez egy reszponzív weboldal példa.</p>

        </section>

        <section class="content">

            <div class="column">

                <h3>Cikk 1</h3>

                <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit.</p>

            </div>

            <div class="column">

                <h3>Cikk 2</h3>

                <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit.</p>

            </div>

            <div class="column">

                <h3>Cikk 3</h3>

                <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit.</p>

            </div>

        </section>

    </main>

    <footer>

        <p>&copy; 2024 Komplett Weboldal</p>

    </footer>

</body>

</html>

Nincsenek megjegyzések:

Megjegyzés küldése

<<< szintaxis

 A <<< szintaxist a PHP-ban "heredoc" vagy "nowdoc" szintaxisnak nevezzük. Ez nem pontosan olyan, mint a Jav...