Kombinator CSSSelektory

A > B

Znak > wybiera elementy B, które są bezpośrednimi dziećmi elementu A, czyli leżą dokładnie jeden poziom niżej.

Na tej stronie

Przykład

#
CSS
.menu > li {
  margin-bottom: 6px;
  font-weight: 700;
  color: #fff;
}

.menu ul {
  margin: 4px 0 0;
  font-weight: 400;
  color: #a1a1aa;
}
Podgląd

Definicja i zastosowanie

#

Kombinator dziecka > zawęża kombinator potomka do jednego poziomu. Zapis .menu > li wybiera tylko punkty, których rodzicem jest element .menu. Punkty zagnieżdżonego podmenu pominie, bo ich rodzicem jest inna lista.

To dobry wybór, gdy komponenty się zagnieżdżają. Reguła .card > p nie wpłynie na akapity w innej karcie osadzonej w środku, a .grid > * dotknie tylko elementów siatki, a nie ich zawartości.

Sam znak > nic nie waży, specyficzność liczy się tak samo jak przy spacji. Białe znaki wokół niego są dowolne: ul>li i ul > li działają identycznie, choć drugi zapis jest czytelniejszy.

Pamiętaj, że przeglądarka potrafi sama dodać elementy do drzewa. W tabeli zapisanej bez <tbody> wiersze i tak trafią do automatycznie utworzonego <tbody>, więc table > tr nie zadziała, a table > tbody > tr tak.

Składnia

#
Składnia
A > B { właściwość: wartość; }

Przykładowe selektory

#
  • .demo > span

    Tylko span leżący bezpośrednio w ramce. Wnuk i prawnuk mają innego rodzica.
  • .lvl > span

    Każdy span, którego rodzicem jest .lvl. Taki układ mają zarówno wnuk, jak i prawnuk.
  • .demo > .lvl > span

    Dwa kombinatory wyznaczają dokładną ścieżkę: span w .lvl, które samo leży bezpośrednio w ramce. Pasuje tylko wnuk.
  • .demo > *

    Wszystkie bezpośrednie dzieci ramki bez względu na typ: span i pierwszy div.lvl razem z zawartością.

Przykładowe selektory w praktyce

#

.demo > span

Tylko span leżący bezpośrednio w ramce. Wnuk i prawnuk mają innego rodzica.
.demo > span { background: #7c3aed; color: #fff; }

.lvl > span

Każdy span, którego rodzicem jest .lvl. Taki układ mają zarówno wnuk, jak i prawnuk.
.lvl > span { background: #7c3aed; color: #fff; }

.demo > .lvl > span

Dwa kombinatory wyznaczają dokładną ścieżkę: span w .lvl, które samo leży bezpośrednio w ramce. Pasuje tylko wnuk.
.demo > .lvl > span { background: #7c3aed; color: #fff; }

.demo > *

Wszystkie bezpośrednie dzieci ramki bez względu na typ: span i pierwszy div.lvl razem z zawartością.
.demo > * { background: #7c3aed; color: #fff; }

Obsługa przeglądarek

#

Szeroko dostępne

Działa we wszystkich nowoczesnych przeglądarkach, także na telefonach. Możesz używać bez obaw.

  • Chrome
  • Edge
  • Firefox
  • Safari

Dobre praktyki

#
  • Używaj > w komponentach, które mogą się zagnieżdżać, takich jak menu, karty czy listy komentarzy. Styl nie przecieknie do środka.
  • Para .kontener > * to wygodny sposób na ostylowanie wszystkich elementów układu flex lub grid bez zaglądania w ich zawartość.

Powiązane hasła

#

Widzisz błąd albo brakuje przykładu? Napisz do nas.