Pseudoklasa CSSPseudoklasy

:nth-of-type()

Wybiera elementy według pozycji wśród rodzeństwa z tym samym znacznikiem, na przykład co drugi obrazek albo trzeci akapit.

Na tej stronie

Przykład

#
CSS
.chat p:nth-of-type(odd) {
  justify-self: start;
  background: #27272a;
}

.chat p:nth-of-type(even) {
  justify-self: end;
  background: #7c3aed;
}
Podgląd

Godziny w znacznikach time stoją między wiadomościami, ale nie zaburzają naprzemiennego układu, bo liczone są tylko akapity.

Definicja i zastosowanie

#

Pseudoklasa :nth-of-type() działa jak :nth-child(), ale liczy tylko rodzeństwo z tym samym znacznikiem. W artykule, w którym akapity przeplatają się z obrazkami, p:nth-of-type(2) wskaże drugi akapit, nawet jeśli przed nim stoją trzy obrazki.

Przyjmuje te same argumenty: liczbę, odd, even i wzór An+B. Wersjami bez argumentu są :first-of-type i :last-of-type, a do liczenia od końca służy :nth-last-of-type().

Ważne: „typ” oznacza nazwę znacznika, a nie klasę. Selektor .card:nth-of-type(2) nie wybierze drugiej karty. Wybierze element z klasą card, który jest drugim elementem swojego znacznika (np. drugim div) w rodzicu. Do liczenia po klasie służy :nth-child(2 of .card).

Składnia

#
Składnia
:nth-of-type( <liczba> | odd | even | An+B )

Argumenty

#
  • 2

    span 2

    Drugi span, choć w rodzicu jest trzecim dzieckiem. Elementy em nie są liczone.
  • odd

    em 1, em 3

    Nieparzyste elementy em: pierwszy i trzeci. Każdy znacznik ma własne liczenie.
  • even

    span 2, span 4

    Parzyste elementy span, bez oglądania się na em stojące między nimi.
  • n+3

    span 3, span 4

    Od trzeciego elementu span do ostatniego.
  • :nth-child(2)

    nic

    Dla porównania span:nth-child(2) nie wybiera nic, bo drugim dzieckiem rodzica jest em.

Argumenty w praktyce

#

2

Drugi span, choć w rodzicu jest trzecim dzieckiem. Elementy em nie są liczone.
span:nth-of-type(2) { background: #7c3aed; color: #fff; }

odd

Nieparzyste elementy em: pierwszy i trzeci. Każdy znacznik ma własne liczenie.
em:nth-of-type(odd) { background: #7c3aed; color: #fff; }

even

Parzyste elementy span, bez oglądania się na em stojące między nimi.
span:nth-of-type(even) { background: #7c3aed; color: #fff; }

n+3

Od trzeciego elementu span do ostatniego.
span:nth-of-type(n+3) { background: #7c3aed; color: #fff; }

:nth-child(2)

Dla porównania span:nth-child(2) nie wybiera nic, bo drugim dzieckiem rodzica jest em.
span:nth-child(2) { 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 :nth-of-type(), gdy w rodzicu mieszają się różne znaczniki, na przykład akapity, obrazki i nagłówki.
  • Nie łącz go z klasą w nadziei, że policzy klasy. Liczy tylko znaczniki, więc do klas użyj :nth-child(… of .klasa).

Powiązane hasła

#

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