• Как правильно прописать :nth-child?

    MrDecoy
    @MrDecoy Куратор тега CSS
    Верставший фронтендер
    Добрый день. Происходит так потому, что при использовании nth-child он смотрит на всех детей родительского контейнера. Добавив имя класса Вы лишь указываете что если ребёнок подходит под прогрессию(чётное) И одновременно с этим имеет указанный класс, то окрась. И таким образом получается, что 0 и 4 элементы рассматриваются как чётные, потому что в дереве документа так оно и есть. Если Вы добавите класс .p к p с номером 2 то увидите наглядно. Или же можете добавить ещё один элемент P без класса и тогда элемент 4 покрасится в зелёный потому что в дереве он станет не чётным.
    Перепробовал через nth-child с комбинациями :not и :first-child и тоже что-то не придумалось особо.
    Варианты решения:
    1) Обработка на JS;
    Делать выборку всех элементов с определённым классом и уже там их перекрашивать по чётности или не чётности, но в идеале добавлять модификатор, что-то вроде:
    Найди все .p, к чётным добавь класс p_odd, к нечётным p_even
    2) Выводить эти элементы изначально с другим классом-модификатором.
    Ответ написан