Frontend Academy · Lekcja

Selektory i kaskada

Wybieraj elementy za pomocą selektorów typu, klasy, ID i atrybutu. Poznaj specyficzność, dziedziczenie i kaskadę, aby przewidywać, które style wygrają.

Lekcja 1 z 413 kroki

Selektory i kaskada to bezpłatna lekcja Frontend Academy na CoddyKit. To lekcja 1 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Frontend Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Frontend Academy zawiera 4 lekcji w sumie.

Czym jest CSS?

CSS (Cascading Style Sheets) to język sterujący prezentacją wizualną. Tworzy się w nim reguły — każda reguła zawiera selektor, który wskazuje elementy, oraz blok deklaracji z parami właściwość–wartość.

selector {
  property: value;
  another-property: value;
}

Selektory typów, klas i identyfikatorów

Trzy podstawowe selektory: typ wskazuje wszystkie elementy danego tagu (p), klasa wskazuje elementy z daną klasą (.card), a ID wskazuje jeden element za pomocą identyfikatora (#logo). Preferowane są klasy — identyfikatory mają bardzo wysoką specyficzność.

p { color: #333; }        /* type */
.card { padding: 16px; }   /* class */
#logo { width: 200px; }    /* ID */

Selektory atrybutów i pseudoklas

Element można wybrać na podstawie wartości atrybutu za pomocą [type="email"]. Pseudoklasy służą do wskazywania stanu: :hover, :focus, :active, :checked, :nth-child(), :first-child, :last-child.

input[type="email"] { border-color: blue; }
a:hover { text-decoration: underline; }
li:nth-child(odd) { background: #f5f5f5; }

Kombinatory

Kombinatory opisują relacje między elementami: spacja (potomek), > (bezpośrednie dziecko), + (sąsiednie rodzeństwo), ~ (dowolne rodzeństwo).

nav a { color: white; }        /* descendant */
nav > ul { list-style: none; }  /* child */
h2 + p { margin-top: 0; }       /* adjacent sibling */

Specyficzność: która reguła wygrywa?

Gdy wiele reguł wskazuje ten sam element, o wyniku decyduje specyficzność. Selektory identyfikatorów (0,1,0,0) wygrywają z selektorami klas (0,0,1,0), a te z selektorami typów (0,0,0,1). Style wbudowane wygrywają ze wszystkimi. !important wygrywa ze wszystkim — należy używać go w ostateczności.

Obliczanie specyficzności

Należy osobno policzyć identyfikatory, klasy/atrybuty/pseudoklasy oraz typy. Następnie należy porównać poszczególne kolumny. Przykład: #nav .link:hover = (0,1,1,1). .nav a = (0,0,1,1). Pierwszy selektor wygrywa.

/* Specificity: 0,0,1,1 — loses */
.nav a { color: red; }

/* Specificity: 0,1,1,1 — wins */
#nav .link:hover { color: blue; }

Kaskadowość: kolejność ma znaczenie

Gdy specyficzność jest taka sama, wygrywa reguła znajdująca się później w arkuszu stylów. To właśnie oznacza litera C w CSS — kaskadowość. Znaczenie mają zarówno kolejność importowania, jak i kolejność występowania reguł w kodzie źródłowym.

Dziedziczenie

Niektóre właściwości CSS są domyślnie dziedziczone — elementy potomne otrzymują wartość elementu rodzica bez konieczności jej ustawiania. Dziedziczone są właściwości związane z tekstem, takie jak color, font-family i line-height. Właściwości modelu pudełkowego, takie jak margin, nie są dziedziczone.

body {
  font-family: 'Inter', sans-serif; /* all text inherits this */
  color: #1a202c;                   /* all text inherits this */
}

Selektory :is() i :where()

:is() i :where() pozwalają tworzyć zwięzłe selektory pasujące do dowolnego elementu z listy. Różnica polega na tym, że :is() dziedziczy najwyższą specyficzność swoich argumentów, a :where() zawsze ma zerową specyficzność.

/* Instead of h1 a, h2 a, h3 a: */
:is(h1, h2, h3) a {
  color: inherit;
}

Selektor uniwersalny *

Selektor uniwersalny * pasuje do każdego elementu. Jest często używany w resetach CSS: *, *::before, *::after { box-sizing: border-box; }, dzięki czemu model pudełkowy staje się znacznie bardziej przewidywalny.

*, *::before, *::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

Domyślne style przeglądarki

Przeglądarki stosują własny domyślny arkusz stylów (arkusz stylów agenta użytkownika) przed zastosowaniem arkusza użytkownika. Resety CSS, takie jak normalize.css, lub warstwy CSS neutralizują te wartości domyślne, dzięki czemu stylowanie rozpoczyna się od znanej wartości bazowej.

Szybki test

Który selektor ma najwyższą specyficzność?

Podsumowanie: selektory i kaskadowość

Elementy można wskazywać za pomocą selektorów typów, klas, identyfikatorów, atrybutów i pseudoklas. Specyficzność rozstrzyga konflikty (identyfikatory > klasy > typy). Kaskadowość rozstrzyga remisy na podstawie kolejności w kodzie źródłowym. Dziedziczenie automatycznie przekazuje style tekstu elementom potomnym.

Bezpłatny start

Ucz się HTML dzięki korepetycjom AI — za darmo

Pisz i uruchamiaj kod w przeglądarce, otrzymuj natychmiastową pomoc od korepetytora AI dostępnego 24/7 i kontynuuj naukę w sieci lub w aplikacji.

Kursy
41
Lekcje
163

Często zadawane pytania

Czy lekcja „Selektory i kaskada” jest bezpłatna?

Tak — pełny tekst „Selektory i kaskada” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Frontend Academy, przejdź na CoddyKit PRO. Kurs Frontend Academy zawiera 4 lekcji w sumie.

Co nauczysz się w „Selektory i kaskada”?

Wybieraj elementy za pomocą selektorów typu, klasy, ID i atrybutu. Poznaj specyficzność, dziedziczenie i kaskadę, aby przewidywać, które style wygrają. Ćwiczysz Frontend Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.

Czy potrzebuję doświadczenia, aby zacząć Frontend Academy?

Nie wymagamy żadnego doświadczenia. Frontend Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 1 z 4.

Ile czasu zajmuje lekcja „Selektory i kaskada”?

Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.

Czy mogę pisać i uruchamiać kod w tej lekcji Frontend Academy?

Tak. Każda lekcja Frontend Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.

Wszystkie lekcje w tym kursie

  1. Selektory i kaskada
  2. Kolory, typografia i model pudełkowy
  3. Display: podstawy block, inline, flex i grid
  4. Pozycjonowanie: relative, absolute, fixed, sticky
← Powrót do Frontend Academy