Pseudoklasa CSSPseudoklasy

:first-child

Pasuje do elementu, który jest pierwszym dzieckiem swojego rodzica.

Na tej stronie

Przykład

#
CSS
.list li {
  padding: 8px 0;
  border-top: 1px solid #3f3f46;
}

.list li:first-child {
  border-top: 0;
}
Podgląd

Definicja i zastosowanie

#

Pseudoklasa :first-child wybiera element stojący na samym początku swojego rodzica. li:first-child to pierwszy punkt każdej listy na stronie, bo w każdej liście jest jakiś pierwszy punkt. Liczą się tylko elementy, tekst przed nimi nie ma znaczenia.

Najczęstsza pułapka: selektor sprawdza, czy element jest pierwszym dzieckiem w ogóle, a nie pierwszym elementem danego typu. Jeśli w artykule przed pierwszym akapitem stoi nagłówek, p:first-child nie trafi w nic, bo pierwszym dzieckiem jest nagłówek. Do takich przypadków służy :first-of-type, która liczy tylko elementy z tym samym znacznikiem.

Pseudoklasa przydaje się do usuwania zbędnych odstępów i obramowań na brzegach: pierwszy element listy bez górnej kreski, pierwsza karta bez marginesu. :first-child znaczy to samo co :nth-child(1), a jej lustrzanym odbiciem jest :last-child.

Składnia

#
Składnia
selektor:first-child { właściwość: wartość; }

Przykładowe selektory

#
  • li:first-child

    Pierwszy punkt listy, bo stoi na samym początku swojego rodzica.
  • p:first-child

    Nic się nie podświetla: pierwszym dzieckiem artykułu jest h4, a nie akapit.
  • p:first-of-type

    Rozwiązanie: pierwszy akapit spośród akapitów, bez względu na nagłówek przed nim.
  • li:not(:first-child)

    Wszystkie punkty oprócz pierwszego. Wygodne do kresek oddzielających kolejne elementy.

Przykładowe selektory w praktyce

#

li:first-child

Pierwszy punkt listy, bo stoi na samym początku swojego rodzica.
li:first-child { background: #7c3aed; color: #fff; }

p:first-child

Nic się nie podświetla: pierwszym dzieckiem artykułu jest h4, a nie akapit.
p:first-child { background: #7c3aed; color: #fff; }

p:first-of-type

Rozwiązanie: pierwszy akapit spośród akapitów, bez względu na nagłówek przed nim.
p:first-of-type { background: #7c3aed; color: #fff; }

li:not(:first-child)

Wszystkie punkty oprócz pierwszego. Wygodne do kresek oddzielających kolejne elementy.
li:not(:first-child) { 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

#
  • Zanim użyjesz p:first-child, sprawdź, co naprawdę stoi na początku rodzica. Często bezpieczniejsze jest :first-of-type.
  • Dla elementu, który jest jedynym dzieckiem, istnieje :only-child. Pasuje, gdy element jest jednocześnie pierwszy i ostatni.
  • Zamiast zerować obramowanie pierwszego elementu, możesz od razu napisać li + li { border-top: … } albo li:not(:first-child).

Powiązane hasła

#

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