Задать вопрос
@arpeggio

Почему nth-of-type и nth-child так себя ведут?

Есть такая структура:
<ul>
 <li class='class1'></li>
 <li class='class2'></li>
 <li class='class1'></li>
 <li class='class2'></li>
 <li class='class1'></li>
</ul>

если писать селекторы так:
.class1:nth-child(1) {
 background: #aaa;
}
.class1:nth-child(2) {
 background: #bbb;
}
.class1:nth-child(3) {
 background: #ccc;
}

или
.class1:nth-of-type(1) {
 background: #aaa;
}
.class1:nth-of-type(2) {
 background: #bbb;
}
.class1:nth-of-type(3) {
 background: #ccc;
}

то эти селекторы будут применяться не к лишкам с классом class1, а просто ко всем поочереди лишкам, неважно, какой у них класс. Причём такое поведение и в хроме и в мозилле, видать спека такая, но это как-то нелогично.
Может кто-то объяснить такое поведение селекторов?
  • Вопрос задан
  • 137 просмотров
Подписаться 1 Средний Комментировать
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    Профессиональная вёрстка на HTML и CSS
    3 месяца
    Далее
  • Stepik
    Основы HTML и CSS
    2 недели
    Далее
  • OTUS
    HTML/CSS
    3 месяца
    Далее
Решения вопроса 1
Ankhena
@Ankhena Куратор тега CSS
Нежно люблю верстку
:nth-of-type выбирает дочерние элементы своего родителя указанного типа
тип у элементов один - это li, а класс это класс, а не тип.
соответственно в вашем случае nth-child и nth-of-type идентичны
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы