3.1 Flexbox
Створення гнучких макетів з використанням Flexbox і Grid — це ключова техніка у розробці сучасних відзивчивих вебсайтів. Ці технології дозволяють легко управляти розташуванням елементів на сторінці, забезпечуючи їх адаптацію до різних розмірів екранів та пристроїв.
Flexbox (Flexible Box Layout Module) призначений для одномірного розміщення елементів (або по рядку, або по колонці). Flexbox спрощує створення гнучких і відзивчивих макетів.
Основні концепції Flexbox:
- Flex-контейнер: елемент, до якого застосовується властивість
display: flex - Flex-елементи: дочірні елементи flex-контейнера, які розташовуються всередині нього
Властивості Flexbox
Flex-контейнер:
display: flex: визначає елемент як flex-контейнерflex-direction: встановлює напрямок розташування flex-елементів (row,column,row-reverse,column-reverse)justify-content: керує вирівнюванням flex-елементів по головній осі (flex-start,flex-end,center,space-between,space-around)align-items: керує вирівнюванням flex-елементів по поперечній осі (stretch,flex-start,flex-end,center,baseline)
Flex-елементи:
flex-grow: визначає здатність елемента збільшуватися при наявності вільного просторуflex-shrink: визначає здатність елемента зменшуватися при нестачі просторуflex-basis: задає початковий розмір елемента перед розподілом вільного просторуalign-self: перевизначає вирівнювання елемента по поперечній осі, задане уalign-items
Приклад використання Flexbox
Створимо макет із трьома колонками, який буде адаптуватися до різних розмірів екрану:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Приклад Flexbox</title>
<style>
.flex-container {
display: flex;
justify-content: space-between;
align-items: stretch;
flex-wrap: wrap;
}
.flex-item {
flex: 1 1 200px;
margin: 10px;
padding: 20px;
background-color: #f4f4f4;
text-align: center;
}
</style>
</head>
<body>
<div class="flex-container">
<div class="flex-item">Колонка 1</div>
<div class="flex-item">Колонка 2</div>
<div class="flex-item">Колонка 3</div>
</div>
</body>
</html>
Пояснення коду:
-
.flex-container: визначає контейнер як flex-контейнер, вирівнює елементи з рівними проміжками між ними та дозволяє елементам переноситися на наступний рядок при нестачі простору -
.flex-item: flex-елементи, які займають рівний простір, мають мінімальну ширину 200px та рівномірно розподілені всередині контейнера
3.2 CSS Grid
CSS Grid Layout — це двовимірна система компоновки, яка дозволяє створювати складні макети з використанням рядків і колонок.
Основні концепції CSS Grid:
- Grid-контейнер: елемент, до якого застосовується властивість
display: grid - Grid-елементи: дочірні елементи grid-контейнера, які розташовуються у сітці
Властивості CSS Grid
Grid-контейнер:
display: grid: визначає елемент як grid-контейнерgrid-template-columns: встановлює кількість і розміри колонок у сітціgrid-template-rows: встановлює кількість і розміри рядків у сітціgap: керує проміжками між рядками і колонкамиjustify-items: керує горизонтальним вирівнюванням grid-елементівalign-items: керує вертикальним вирівнюванням grid-елементів
grid-column: визначає, на скільки колонок елемент буде простягатисяgrid-row: визначає, на скільки рядків елемент буде простягатисяjustify-self: перевизначає горизонтальне вирівнювання елементаalign-self: перевизначає вертикальне вирівнювання елемента
Grid-елементи:
Приклад використання CSS Grid
Створимо макет із трьома колонками та двома рядками, який буде адаптуватися до різних розмірів екранів.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Приклад CSS Grid</title>
<style>
.grid-container {
display: grid;
grid-template-columns: repeat(3, 1fr);
grid-template-rows: repeat(2, 1fr);
gap: 10px;
}
.grid-item {
padding: 20px;
background-color: #e4e4e4;
text-align: center;
}
</style>
</head>
<body>
<div class="grid-container">
<div class="grid-item">Елемент 1</div>
<div class="grid-item">Елемент 2</div>
<div class="grid-item">Елемент 3</div>
<div class="grid-item">Елемент 4</div>
<div class="grid-item">Елемент 5</div>
<div class="grid-item">Елемент 6</div>
</div>
</body>
</html>
Пояснення коду:
.grid-container: визначає контейнер як grid-контейнер із трьома колонками та двома рядками, кожен елемент займає рівний простір.grid-item: grid-елементи з рівномірними відступами та фоном
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ