Какие знаешь свойства Grid

Ответ

Grid — мощный инструмент для создания сложных макетов. Основные свойства:

Контейнер:

  • display: grid – активация грид-разметки
  • grid-template-columns/rows – задаёт размеры колонок/строк (например, 1fr 2fr)
  • gap – отступы между элементами (row-gap, column-gap)

Элементы:

  • grid-column/row – позиционирование (например, grid-column: 1 / 3)
  • grid-area – имя области для размещения
  • justify/align-self – выравнивание элемента внутри ячейки

Пример:

.container {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
}
.item {
  grid-column: span 2;
}

Ответ 18+ 🔞

А, гриды! Ну, это ж, блядь, просто песня, а не инструмент, я тебе щас объясню, как с ними не обосраться.

Смотри, вот есть у тебя контейнер, обычный такой div, ни о чём не подозревающий. Чтобы из него сделать, блядь, командный центр, надо ему влепить display: grid. Всё, приехали. Теперь это не просто блок, а, ёпта, разлинованный лист, как в школе, только круче.

А теперь самое вкусное — разлиновка. Две главные команды, которые всё решают:

  • grid-template-columns — это, сука, сколько у тебя будет вертикальных колонок и какой они ширины. Хочешь три одинаковые? 1fr 1fr 1fr. А можно repeat(3, 1fr), чтобы не пиздеть лишнего. fr — это, типа, доля, свободное место. Овердохуища удобно.
  • grid-template-rows — то же самое, но для горизонтальных строк. Захочешь — настроишь.

Между всеми этими ячейками можно сделать воздух — это gap. Раньше, блядь, марджинами и паддингами выкручивались, а теперь одной строчкой: gap: 20px;. Красота, в рот меня чих-пых!

Ну а теперь про детей, про элементы внутри. Вот они тупо по порядку в ячейки заскакивают. А если хочешь, чтобы какой-то хитрожопый элемент занял две колонки? Да легко! Пишешь ему: grid-column: 1 / 3;. Это значит "займи, сука, от первой линии до третьей". Или grid-column: span 2; — "растянись на две штуки". Строками (grid-row) — абсолютно так же.

Можно вообще, блядь, цирк устроить, назвать области grid-area и расставлять элементы, как в конструкторе. А если какой-то один элемент заартачился и не хочет слушаться общего выравнивания, ему justify-self или align-self впендюрить — и он сразу в стойло встанет.

Смотри, как это выглядит, простейший пример:

.container {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
}
.item {
  grid-column: span 2; /* Этот буратино займёт две колонки из трёх! */
}

Вот и вся магия. Выглядит сложно, а на деле — раз плюнуть. Главное начать использовать, а там, блядь, такой кайф, что на флоаты и флексы смотреть не захочешь.