Разве это не правильно?

Разве это не правильно?

ul:not(:last-of-type) li:not(.nine) .diamond{ background:#ccffcc; }
это из 19 задания, где нужно карты разложить и раскрасить в разные цвета

Не знаю, что именно нужно, читается как-то так:

  • во всех ul, кроме последнего, выбрать все li, кроме .nine, и в них найти элемент с классом .diamond
  • и задать ему цвет фона

все верно вроде, только не работает


4й день борюсь с псевдоклассами и вроде бы уже все вызубрил, но походу нет

Без доступа к курсу не могу подсказать, но выглядит вроде правильно. У тебя совсем не окрашивается почему-то. А если ul убрать, становятся зелеными?

li:not(.nine) .diamond {
	background:#ccffcc;
}

Или так может быть

ul:not(:last-of-type) li.diamond:not(.nine) {
	background: #ccffcc;
}

нет, если убираю .diamond окрашиваются все карты кроме последнего ряда ul и вертикального ряда с 9

Нет, не diamond убрать, а выбрать его, кроме . nine

ul:not(:last-of-type) li.diamond:not(.nine)

сработало

Это хорошо. )

это да, но почему мой вариант не сработал, все же вроде логично

У меня li.diamond:not(.nine) одним куском, а у тебя отдельно.
Получается ты ищешь .diamond внутри li, а не li с классом .diamond.

Попробуй убрать пробел:

ul:not(:last-of-type) li:not(.nine).diamond {

тоже работает :grinning: теперь хоть разобрался

C отступами не понятно, у меня все карты на 15px сдвинуты вправо, сам уже запутался, вправо сдвинуты

в css margin-left: -15px; встречается, где-то в нём может быть причина

причину я обнаружил, только не могу понять как исправить

посмотрел подсказку, все дело в этом коде. Сможешь объяснить?
li+li:not(.nine) { margin-left:-15px; }
у меня было так:
li:not(.nine) { margin-left:-15px; }

Это выбор соседнего селектора:
выбрать все li, кроме .nine, которые идут за любым другим li.

li+li:not(.nine) {
    margin-left:-15px;
}

Это выбор всех li, кроме .nine

li:not(.nine) {
    margin-left:-15px;
}

Последнее испытание в этом курсе, выполнил с первого раза на 100% за минут 20, так что вроде разобрался, можна идти дальше