Я хотел бы создать класс css стека, в котором каждый элемент, за которым следует элемент, теперь имеет margin-top
, например:
.stack > * + *{
margin-top:var(--stack-gap);
}
, с --stack-gap
var I можно установить интервал стека. Нравится:
.stack > * + * {
margin-top: var(--stack-gap);
}
<div class="stack" style="--stack-gap:20px">
<div>...</div>
<div>...</div>
</div>
Итак, между двумя тегами div есть пробел в 20 пикселей.
Но когда внутри стека классов есть класс стека, и установите --stack-gap
индивидуально, тогда родительское свойство --stack-gap
будет игнорироваться, как оно установлено в дочернем стеке. Как:
.stack > * + * {
margin-top: var(--stack-gap);
}
<div class="stack" style="--stack-gap:20px">
<div>
<div>...</div>
<div>...</div>
</div>
<div class="stack" style="--stack-gap:60px">
<div>...</div>
<div>...</div>
</div>
</div>
Теперь у класса внутреннего стека есть предел поля 60px
, поскольку он устанавливает --stack-gap
в 60px
, но ожидаемое поведение будет 20px
margin-top
когда я устанавливаю --stack-gap
на 20px
в родительском стеке.
Я полностью понимаю, почему это происходит, я просто хотел бы спросить, как я могу решить эту проблему, поэтому --stack-gap
свойство элемента стека влияет только на дочерние элементы, но не на себя?