Возьмём, например, урок 7/20, задача 2: задать третьей карте третьей строки фон (какой фон - не принципиально для моего вопроса). Поскольку в коде, в боди, перед списками (рядами карт) есть DIV, то использование в первой части правила: .cards:nth-OF-type(3) - мне понятно. В противном случае (nth-child(3)) сработает неправильно и покрасит карту во втором ряду. Здесь вопросов нет. Но вопрос возникает дальше. Во второй части правила я пишу: li:nth-child(3), т.к. среди li в этом списке НИКАКИХ больше вставок, типа div в боди, нет. Система засчитывает ответ, но сама пишет, если нажать “показать ответ” ТАКЖЕ li:nth-OF-type(3)! Понятно, что сработают корректно оба варианта, но зачем использовать OF-TYPE, когда члены списка однозначны?? И ещё, в целом правило у меня получается такое: .cards:nth-of-type(3) li:nth-child(3) {}. Но система после нажатия кнопки “Показать ответ” начинает его так: UL:nth-of-type и т.д… Почему? Когда лучше обращаться к тегу, а когда - к классу при нём? Или это равноценно?
Потому что задание создано на тренировку использования именно этого псевдо-селектора. Для третьей цели написано ul:nth-of-type(1)…, хотя вполне можно написать :first-of-type. Всё для того, чтобы вы как можно больше раз использовали именно :nth-of-type.
В рамках задания вы можете использовать и ul, и .cards в селекторе, но я считаю, что лучше всё же обращаться по классу, потому что ul на странице может быть не один.
Спасибо за столь исчерпывающий ответ.