РЕДАКТИРОВАТЬ
:nth-of-type
& :not()
Демонстрация 2
Поскольку OP не может изменять HTML (визуализируется динамически?) - мы можем использовать *Селектор 1009 * и отрицательная начальная точка для числа :nth-of-type
.Это первый набор правил ниже, который почти работает, но первый .col-12
синий.Таким образом, второй набор правил ниже меняет первый .col-12
обратно на белый.Причина, по которой :not()
используется снова, заключается в том, что :not(#invisible)
в первом наборе правил имеет очень высокую специфичность, поскольку используется идентификатор - добавление .col-12
ко второму набору правил дает более высокую специфичность, чем первый набор правил.
body > div > div:nth-of-type(3n-2):not(#invisible) {
background: blue
}
body > div > div.col-12:first-of-type:not(#invisible) {
background: white
}
:nth-of-type
Демо 1
Измените #invisible
на что угодно, кроме <div>
, затем используйте :nth-of-type
.nth-of-type
учитывает только tagName
s как div
или section
, поэтому, изменив #invisible
на другой тег, вы исключите его.Также используйте дочерние комбинаторы >
, чтобы «заблокировать» его. В вашем макете есть много <div>
с, так что:
div:nth-child(3n+3) //The +3 might be a reaction to the unexpected results?
Будет учитывать все <div>
с, которые являются детьми всего.Это с другой стороны:
body > div > div:nth-of-type(3n)
сужает возможности.Прямой потомок (или ребенок) <body>
равен .parent
, тогда учитываются только дети .parent
.Теперь .block1
и .block2
никогда не рассматриваются (это не влияет на ваш макет, скажем, из-за 3n
, но лучше рассмотреть это в будущем).
Демо 1
.col-12 {
outline: 3px dashed red
}
body>div>div:nth-of-type(3n) {
background: blue
}
<div class=parent>
<div class="col-12">
<div class="block1">
<a class="link">link</a>
</div>
<div class="block2">
<p class="text">some text</p>
</div>
</div>
<div class="col-12">
<div class="block1">
<a class="link">link</a>
</div>
<div class="block2">
<p class="text">some text</p>
</div>
</div>
<aside id="invisible"></aside>
<div class="col-12">
<div class="block1">
<a class="link">link</a>
</div>
<div class="block2">
<p class="text">some text</p>
</div>
</div>
<div class="col-12">
<div class="block1">
<a class="link">link</a>
</div>
<div class="block2">
<p class="text">some text</p>
</div>
</div>
<div class="col-12">
<div class="block1">
<a class="link">link</a>
</div>
<div class="block2">
<p class="text">some text</p>
</div>
</div>
<div class="col-12">
<div class="block1">
<a class="link">link</a>
</div>
<div class="block2">
<p class="text">some text</p>
</div>
</div>
<div class="col-12">
<div class="block1">
<a class="link">link</a>
</div>
<div class="block2">
<p class="text">some text</p>
</div>
</div>
<div class="col-12">
<div class="block1">
<a class="link">link</a>
</div>
<div class="block2">
<p class="text">some text</p>
</div>
</div>
<div class="col-12">
<div class="block1">
<a class="link">link</a>
</div>
<div class="block2">
<p class="text">some text</p>
</div>
</div>
<div class="col-12">
<div class="block1">
<a class="link">link</a>
</div>
<div class="block2">
<p class="text">some text</p>
</div>
</div>
<div class="col-12">
<div class="block1">
<a class="link">link</a>
</div>
<div class="block2">
<p class="text">some text</p>
</div>
</div>
<div class="col-12">
<div class="block1">
<a class="link">link</a>
</div>
<div class="block2">
<p class="text">some text</p>
</div>
</div>
<div class="col-12">
<div class="block1">
<a class="link">link</a>
</div>
<div class="block2">
<p class="text">some text</p>
</div>
</div>
</div>
Демо 2
.col-12 {
outline: 3px dashed red
}
body>div>div:nth-of-type(3n-2):not(#invisible) {
background: blue
}
body>div>div.col-12:first-of-type:not(#invisible) {
background: white
}
<div class=parent>
<div class="col-12">
<div class="block1">
<a class="link">link</a>
</div>
<div class="block2">
<p class="text">some text</p>
</div>
</div>
<div class="col-12">
<div class="block1">
<a class="link">link</a>
</div>
<div class="block2">
<p class="text">some text</p>
</div>
</div>
<div id="invisible"></div>
<div class="col-12">
<div class="block1">
<a class="link">link</a>
</div>
<div class="block2">
<p class="text">some text</p>
</div>
</div>
<div class="col-12">
<div class="block1">
<a class="link">link</a>
</div>
<div class="block2">
<p class="text">some text</p>
</div>
</div>
<div class="col-12">
<div class="block1">
<a class="link">link</a>
</div>
<div class="block2">
<p class="text">some text</p>
</div>
</div>
<div class="col-12">
<div class="block1">
<a class="link">link</a>
</div>
<div class="block2">
<p class="text">some text</p>
</div>
</div>
<div class="col-12">
<div class="block1">
<a class="link">link</a>
</div>
<div class="block2">
<p class="text">some text</p>
</div>
</div>
<div class="col-12">
<div class="block1">
<a class="link">link</a>
</div>
<div class="block2">
<p class="text">some text</p>
</div>
</div>
<div class="col-12">
<div class="block1">
<a class="link">link</a>
</div>
<div class="block2">
<p class="text">some text</p>
</div>
</div>
<div class="col-12">
<div class="block1">
<a class="link">link</a>
</div>
<div class="block2">
<p class="text">some text</p>
</div>
</div>
<div class="col-12">
<div class="block1">
<a class="link">link</a>
</div>
<div class="block2">
<p class="text">some text</p>
</div>
</div>
<div class="col-12">
<div class="block1">
<a class="link">link</a>
</div>
<div class="block2">
<p class="text">some text</p>
</div>
</div>
<div class="col-12">
<div class="block1">
<a class="link">link</a>
</div>
<div class="block2">
<p class="text">some text</p>
</div>
</div>
</div>