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 ahero
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>© 2024 Komplett Weboldal</p>
</footer>
</body>
</html>
Nincsenek megjegyzések:
Megjegyzés küldése