Как работает селектор - понятно. Однако есть вопрос, как писать его, если при теге есть класс. Вот, например, возьмём урок 1 цикла “Селекторы. Часть 2” на объединение по типу логического “И”. Задача из урока: задать фон червям, которые стоят на 1-м месте в строке. Я пишу такой селектор: .heart:first-child и далее правило. Всё совпало, задача засчитана, при нажатии кнопки “Показать ответ” 100% совпадение. Идём дальше.
Урок 2 (:not). Задача: задать фон всем картам, кроме королей. Я пишу: li:not(.king) - квадратик красится оранжевым, всё засчитано, однако, при нажатии “Показать ответ”, программа пишет так: .CARDS li:not(.king). А далее, если селектор начинается не с .cards, ответ не засчитывается, даже если дальнейшая часть селектора полностью совпадает и задача - судя по раскраске карт - выполнена. Аналогично в 3 уроке: если не хватает впереди селектора .cards, задание на засчитывается. Даже в третьей задаче, где нужно задать фон червям, стоящим не на первой позиции в строке, и не являющимися королевой или валетом, если я пишу (наподобие урока 1) начало с .heart:not(:first-child)… и задача выполняется, ответ не принимается, если селектор не начинается с .cards li! И вот мой вопрос, в каких случаях нужно брать более “высоко” по коду, когда можно обратиться только к классу тега, а когда к самому тегу, а когда и туда, и туда одновременно? Или это просто варианты полноценные и полноправные? Или ещё что? Пожалуйста, поясните.
Если я правильно понимаю ваш вопрос… Всё дело в том, что в задании подключён внешний стилевой файл. Там уже прописаны стили для данного состояния карт. И вам просто не хватало приоритетности. Задействовав по мимо тега, ещё и класс, вы увеличили специфичность (кол-во очков), тем самым заменив подключаемый стиль своим.
Спасибо, что ответили. Наверное, не совсем удачно сформулировал вопрос Я понимаю, что машина сравнивает придуманный мною ответ с тем, который в ней заложен. Но! Очень часто в теории мелькает фраза “так не принято”, “считается дурным тоном”, “не рекомендуется часто использовать такой вариант”. Вот я и хотел узнать, допустимы ли варианты, которые написал я (в 5-м и 6-м уроках вообще надо начинать с ul li…, а не с .cards li…, как делал я(((( ). Или они как раз и подпадают под “дурной тон” и “не принято так делать”. И если действительно подпадают, то почему. Можете мне ответить?