Селектор CSS исключает первый дочерний элемент, затем следует n-й дочерний шаблон

Не уверен, почему это не работает:

:not(first-child):nth-child(3n+2){
  margin-left: 30px;
  margin-right:30px;
}

Он проходит через шаблон 3n + 2, я хочу исключить из этого шаблона первого ребенка, возможно ли это?

это работает, но это 4 строки кода. Я хотел бы сократить код этого фрагмента:

:nth-child(3n+2){
  margin-right:30px;
}
:nth-child(3n+4){
  margin-left: 30px;
}

Вопросы, требующие помощи по коду, должны включать кратчайший код, необходимый для его воспроизведения в самом вопросе, предпочтительно в Фрагмент стека. См. Как создать минимальный, полный и проверяемый пример

Paulie_D 18.10.2018 13:10

Разве nth-child(3n+2)уже не исключает первого ребенка?

Paulie_D 18.10.2018 13:11

@Paulie_D внутри этого счетчика все еще включает первого ребенка nth-child(3n+2), как это исключить? Я хочу начать считать этот nth-child (3n + 2) от второго дочернего элемента, почему я попытался поставить :not(first-child)

user9013856 18.10.2018 13:14

Я действительно не понимаю, что вы пытаетесь сделать. Вот почему нам нужна демонстрация проблемы.

Paulie_D 18.10.2018 13:16

@Paulie_D, я не думаю, что ему нужен пример, я добавлю еще кое-что, дайте мне знать, если это имеет смысл

user9013856 18.10.2018 13:30

Вы также должны добавить свой HTML-код.

Quentin Veron 19.10.2018 12:48
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Введение в CSS
Введение в CSS
CSS является неотъемлемой частью трех основных составляющих front-end веб-разработки.
Как выровнять Div по центру?
Как выровнять Div по центру?
Чтобы выровнять элемент <div>по горизонтали и вертикали с помощью CSS, можно использовать комбинацию свойств и значений CSS. Вот несколько методов,...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
CSS: FlexBox
CSS: FlexBox
Ранее разработчики использовали макеты с помощью Position и Float. После появления flexbox сценарий полностью изменился.
2
6
110
2

Ответы 2

Вам нужно использовать двоеточие (:) перед первым ребенком, поэтому оно должно быть -

:not(:first-child):nth-child(3n+2){
  margin-left: 30px;
  margin-right:30px;
}

См. Следующий фрагмент кода.

span {
  color: white;
  float: left;
  margin: 10px;
  padding: 10px;
  background-color: black;
}

span:not(:first-child):nth-child(3n+1) {
  background-color: red;
}

span:nth-child(3n+2) {
  background-color: blue;
}

span:nth-child(3n+3) {
  background-color: green;
}
<html>

<head>
</head>

<body>
  <span>1</span>
  <span>2</span>
  <span>3</span>
  <span>4</span>
  <span>5</span>
  <span>6</span>
  <span>7</span>
  <span>8</span>
</body>

</html>

не могли бы вы опубликовать фрагмент кода, показывающий, что он работает для вас, а не для меня

user9013856 18.10.2018 13:31

@ user9013856 Я добавил фрагмент кода в свой ответ для вашей справки. Обратите внимание, что (3n + 2) -й ребенок или (3n + 3) -й ребенок никогда не может быть первым ребенком, поэтому применение ": not (: first-child)" для обоих этих случаев не даст никакого эффекта.

Tyler Durden 19.10.2018 15:16

проверьте это решение здесь, я добавляю CSS, исключая 1-й элемент, которому вы можете следовать этому шаблону. Internet Explorer 8 и более ранние версии не поддерживают селектор: nth-child ().

p:nth-child(1n+2) {
    background: red;
}
<!DOCTYPE html>
<html>
<head>

</head>
<body>

<p>The first.</p>
<p>The second.</p>
<p>The third.</p>
<p>The fourth .</p>
</body>
</html>

Другие вопросы по теме