CSS как использовать псевдокласс: не с: nth-child

Можно ли использовать :not() с nth-child?

Я попробовал что-то вроде этого без везения:

td:not(:nth-child(4n)){
  text-align:center;
}

Однако это, похоже, работает:

td:not(:first-child){
  text-align:center;
}

Я пытаюсь центрировать выравнивание всех столбцов таблицы, кроме 2-го и 4-го столбцов. Колонки динамически генерируются для добавления в этот столбец специального класса.

Ответ 1

:not(:nth-child(4n)) доставит вам все, что не является :nth-child(4n), то есть все, что не является 4-м, 8-м и так далее. Это не исключает второго ребенка, потому что 2 не кратно 4.

Чтобы исключить 2-й и 4-й, вам нужно либо одно:

  • td:not(:nth-child(2n)), если у вас меньше шести столбцов или

  • td:not(:nth-child(2)):not(:nth-child(4)), если у вас есть как минимум 6 столбцов и только хотите исключить 2-й и 4-й, а не каждый четный столбец.

Демо