Задать вопрос
yous
@yous

CSS3 как выбрать последние 4 элемента?

Как выбрать 4 последние элемента в списке разбитом на 4 столбца?
Суть проблемы в следующем, если в последнем ряду остается 3, 2, 1 элемента то блоки начинают пропорционально растягиваться в зависимости от ширины контейнера. т.е. свойство flex: 1 1 auto !important; этому способствует. Нужно чтоб все блоки оставались одной ширины независимо сколько их в ряду.
Вот отсюда мысль найти последние 3 элемента и задать им другие условия. мб как-то по другому можно?

https://codepen.io/Abrakadabra-the-sans/pen/KwVdBgw

.box {
  display:flex;
  flex-wrap:wrap;
  row-gap: 1.5rem !important;
  gap: 1.5rem !important;
  align-items: center !important;
}
div.child {
  width: 360px;
  height:200px;
  position: relative;
  align-self: stretch !important;
  flex: 1 1 auto !important;
  background:red;
}

<div class="box">
  <div class="child"></div>
  <div class="child"></div>
  <div class="child"></div>
  <div class="child"></div>
  <div class="child"></div>
  <div class="child"></div> 
  <div class="child"></div>
  <div class="child"></div> 
  <div class="child"></div>
  <div class="child"></div>
  <div class="child"></div>
</div>


Что-то типа такого
div.child:nth-child(4n+1):nth-last-child(-n+3) {
  background:yellow;
  flex: 0 1 calc((100%/4) - 0.375rem*3) !important
}
div.child:nth-child(4n+2):nth-last-child(-n+2) {
  background:blue;
  flex: 0 1 calc((100%/4) - 0.375rem*3) !important
}
div.child:nth-child(4n+3):nth-last-child(-n+1) {
  background:green;
  flex: 0 1 calc((100%/4) - 0.375rem*3) !important
}
  • Вопрос задан
  • 137 просмотров
Подписаться 1 Простой Комментировать
Решения вопроса 1
alsolovyev
@alsolovyev
¯\_(ツ)_/¯ Enjoy life, Eat well & Laugh often
.box::after {
  content: '';
  flex: 1 1 360px;
  height: 0;
  visibility: hidden;
  pointer-events: none;
}


Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Fragster
@Fragster
помогло? отметь решением!
а чем грид не устраивает? https://play.tailwindcss.com/JbHukIeQPC
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы