Об'єднання колонок у CSS Grid
Вивчаємо властивість grid-column, яка дозволяє елементам займати декілька колонок у CSS Grid.
Об'єднання колонок у CSS Grid
Так само, як можна об'єднувати рядки за допомогою grid-row, у CSS Grid можна об'єднувати колонки за допомогою властивості grid-column.
Властивість grid-column визначає, між якими вертикальними лініями Grid буде розташований елемент.
Значення записується через символ /. Наприклад, grid-column: 1 / 4 означає, що елемент займе першу, другу та третю колонку.
<div id="parent">
<div id="elem1">1</div>
<div id="elem2">2</div>
<div id="elem3">3</div>
<div id="elem4">4</div>
</div>#parent {
display: grid;
padding: 10px;
border: 2px solid #696989;
width: 400px;
height: 300px;
}
#parent > div {
padding: 10px;
border: 1px solid #696989;
}
#elem1 {
grid-column: 1 / 2;
}
#elem2 {
grid-column: 2 / 3;
}
#elem3 {
grid-column: 3 / 4;
}
#elem4 {
grid-column: 1 / 4;
}Перші три елементи займають окремі колонки першого рядка, а четвертий елемент розтягується на всі три колонки другого рядка.
Синтаксис grid-column
element {
grid-column:
початкова-лінія /
кінцева-лінія;
}Grid використовує лінії між колонками. Кінцева лінія не входить у область елемента.
#header {
grid-column: 1 / 4;
}grid-column часто використовується для створення макетів: шапка сайту, основний контент, бокові панелі та підвал.
- grid-column керує шириною елемента у Grid.
- grid-column: 1 / 2 займає одну колонку.
- grid-column: 1 / 4 займає три колонки.
- Властивість задається дочірньому Grid-елементу.
#element {
grid-row: 1 / 3;
grid-column: 1 / 4;
}У цьому випадку елемент займе декілька рядків і декілька колонок одночасно.
- №1. Створіть Grid із чотирма елементами.
- №2. Розмістіть три елементи у першому рядку.
- №3. Зробіть четвертий елемент на всю ширину другого рядка.
- №4. Використайте grid-column для об'єднання колонок.
- №5. Спробуйте створити власний макет.
💡 Показати підказку
Щоб елемент зайняв декілька колонок, збільшуйте кінцевий номер лінії у grid-column.
✅ Показати відповідь
#elem4 {
grid-column: 1 / 4;
}