Неявні сітки, повторювані шаблони макета та Danglers PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.

Неявні сітки, шаблони компонування, що повторюються, і висячі елементи

Дейв Руперт із сучасною магією CSS який вирішує одну з тих класичних головоломок: що станеться, коли CSS для компонента не в змозі обробити вміст, який ми йому накидаємо?

Конкретна ситуація полягає в тому, що сітка макета передбачає парну кількість елементів, але натомість надається непарна кількість. У нас залишився «висаючий» елемент у кінці, який скидає макет. Звучить так, ніби те, що потрібно, це трохи Захисний CSS і Дейв досягає цього.

Він тягнеться до :has() щоб написати чудовий селектор, який винюхує останній елемент у сітці, яка містить непарну кількість елементів:

.items:has(.item:last-of-type:nth-of-type(odd)) .item:first-of-type { }

Порушення цього:

  • У нас є батьківський контейнер .items.
  • Якщо контейнер :has() an .item дитина, яка є останньою у своєму типі,
  • …і це .item виявляється непарним номером,
  • …тоді виберіть перший .item елемент такого типу та стилізуйте його!

У цьому випадку останнє .item можна налаштувати на повну ширину, щоб запобігти отворам у макеті.

Якщо… тоді… CSS має умовну логіку! Наразі ми говоримо лише про підтримку Safari TP і Edge/Chrome Canary, але це чудово.

Як випадково, Темані Афіф нещодавно поділився трюками, яких навчився експериментування з неявними сітками. Використовуючи переваги алгоритму автоматичного розміщення CSS Grid, нам навіть не потрібно явно декларувати фіксовану кількість стовпців і рядків для сітки — CSS створить їх для нас, якщо вони потрібні!

Ні, прийоми Темані не є альтернативним вирішенням дилеми Дейва про «бовтанку». Але поєднання підходу Темані до повторюваних шаблонів компонування сітки з використанням захисного CSS Дейва :has(), ми отримуємо досить потужну та складну на вигляд сітку, яка легка та здатна обробляти будь-яку кількість елементів, зберігаючи збалансований, повторюваний шаблон.

Часова мітка:

Більше від CSS-хитрощі