Files
frontend-docs/docs/html-css/02-flex-grid.md
2025-03-06 13:07:51 +03:00

46 lines
4.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
sidebar_position: 2
---
# Сетка flexbox, grid
Источник: DeepSeek
## Flexbox
Flexbox (Flexible Box Layout) — это мощная модульная система CSS, предназначенная для создания гибких и адаптивных макетов. Она позволяет легко выравнивать элементы, распределять пространство и управлять их поведением в контейнере, даже если размеры элементов неизвестны или динамически изменяются.
#### Основные концепции Flexbox
Flexbox работает с двумя основными сущностями:
1. **Flex Container** (контейнер) — элемент, который содержит дочерние элементы (flex items). Чтобы сделать элемент flex-контейнером, нужно задать ему свойство `display: flex` или `display: inline-flex`.
2. **Flex Items** (элементы) — дочерние элементы внутри flex-контейнера.
#### Преимущества Flexbox:
- Простое создание адаптивных макетов.
- Легкое выравнивание элементов по горизонтали и вертикали.
- Гибкость в управлении размерами и порядком элементов.
#### Когда использовать Flexbox:
- Для создания одномерных макетов (например, навигационные панели, карточки, списки).
- Когда нужно выравнивать элементы внутри контейнера.
- Для создания адаптивных интерфейсов.
## Grid
**CSS Grid Layout** (или просто **Grid**) — это мощная система для создания двумерных макетов в CSS. В отличие от Flexbox, который работает с одномерными макетами (либо строка, либо столбец), Grid позволяет управлять как строками, так и столбцами одновременно. Это делает Grid идеальным инструментом для создания сложных, адаптивных сеток.
#### Основные концепции Grid
1. **Grid Container** (контейнер) — элемент, который содержит дочерние элементы (grid items). Чтобы сделать элемент grid-контейнером, нужно задать ему свойство `display: grid` или `display: inline-grid`.
2. **Grid Items** (элементы) — дочерние элементы внутри grid-контейнера.
3. **Grid Lines** (линии) — линии, которые разделяют строки и столбцы. Они могут быть пронумерованы или названы.
4. **Grid Tracks** (дорожки) — пространство между двумя соседними линиями (строки или столбцы).
5. **Grid Cells** (ячейки) — пересечение строки и столбца (минимальная единица сетки).
6. **Grid Areas** (области) — прямоугольные области, состоящие из одной или нескольких ячеек.
#### Преимущества Grid:
- Полный контроль над строками и столбцами.
- Простое создание сложных макетов.
- Гибкость в управлении размерами и расположением элементов.
#### Когда использовать Grid:
- Для создания двумерных макетов (например, страницы с боковой панелью, заголовком и футером).
- Когда нужно точно контролировать расположение элементов.
- Для создания адаптивных интерфейсов с минимальным количеством медиазапросов.