Różnice w first-child oraz first-of-type

0

Czy mógłby ktoś wyjaśnić różnice pomiędzy pseudoklasami first-child oraz first-of-type? Które i kiedy należy stosować i czy ma to jakiekolwiek znaczenie?

1

:first-child - pierwszy jakikolwiek element,
:first-of-type - pierwszy element danego typu.

W przypadku takiego markupu:

<div>Coś 1</div>
<div>Coś 2</div>
<p>Coś 3</p>
<p>Coś 4</p>

Dopasowania będą następujące:

Selektor Dopasowanie
:first-child Coś 1
div:first-of-type Coś 1
p:first-of-type Coś 3

Które i kiedy należy stosować i czy ma to jakiekolwiek znaczenie?

Zależnie od tego, co chcesz osiągnąć.

0

Na przykład jak jest taki html

<div class="information-box">
  <div class="information-type">tu ikona</div>
  <h3 class="information-title">Godziny otwarcia</h3>
  <p class="information-text">Poniedziałek: 10:00 - 18:00</p>
  <p class="information-text">Środa 10:00 - 18:00</p>
  <p class="information-text">Piątek: 10:00 - 18:00</p>
</div>

To jak zaznaczyć h3 i pierwszy p?

.information-box p:first-child {} /* zaznaczy pierwsze dziecko paragraf? */
.information-box:first-child {} /* zaznaczy div.information-type? */

Nie bijcie ale nadal nie rozumiem... -_-

2
.information-box h3 {
  /* ... */
}

.information-box p:first-of-type {
  /* ... */
}

Pamiętaj o tym, aby być rozważnym przy stosowaniu pseudoselektorów (tzn. :first-child, :first-of-type oraz pochodnych) - kiedyś może będziesz chciał zmienić kolejność elementów w HTMLu czy jakoś bardziej go przerobić, i takie selektory mogą Cię bardzo spowolnić (w przeróbce kodu).

1 użytkowników online, w tym zalogowanych: 0, gości: 1