CSS: применить стили ко всем элементам, кроме первого и последнего
Здравствуйте, товарищи!
Каким образом можно применить стили ко всем элементам, кроме первого и последнего?
<div class="content">
<div class="item">...</div> <!-- первый элемент — margin: 0; -->
<div class="item">...</div> <!-- стандартный элемент — margin: 10px 0; -->
<div class="item">...</div> <!-- стандартный элемент — margin: 10px 0; -->
<div class="item">...</div> <!-- последний элемент — margin: 0; -->
</div>
Вот так не работает:
.content > .item:not(:last-child):not(:first-child) {
margin: 0 0 0 0;
}
так тоже:
.item:first-child,
.item:last-child {
margin: 0 0 0 0;
}
Ответы (2 шт):
Автор решения: Алексей Шиманский
→ Ссылка
Всё работает. Просто у вас где-то ещё это перекрывается
.content > .item:not(:last-child):not(:first-child) {
margin: 0 0 0 0;
background: red
}
<div class="content">
<div class="item">...</div> <!-- первый элемент — margin: 0; -->
<div class="item">...</div> <!-- стандартный элемент — margin: 10px 0; -->
<div class="item">...</div> <!-- стандартный элемент — margin: 10px 0; -->
<div class="item">...</div> <!-- последний элемент — margin: 0; -->
</div>
Автор решения: Linne
→ Ссылка
Вот так работает:
.content > .item:not(:last-of-type):not(:first-of-type) {
margin: 0 0 0 0;
background: red;
}