Как с помощью CSS сделать div, занимающий две строки в сетке?
Опубликовано: 25 Февраля, 2022
Предположим, у нас есть 5 элементов в ряд и задача поместить в середину ряда более крупный элемент. Как с помощью CSS сделать DIV охватывающим 2 строки сетки.
Подход 1: сначала получите высоту внешнего DIV идентификатора ('external') . Мы знаем, что высота внешнего элемента теперь может быть достигнута с помощью CSS Flexbox с flex-direction: column и flex-wrap: wrap. фиксированная высота контейнера указывает гибким элементам, где их оборачивать.
Example:
<!DOCTYPE HTML><html> <head> <style> #outer { display: flex; flex-direction: column; flex-wrap: wrap; height: 120px; width: 516px; } .div { width: 90px; flex: 0 0 50px; margin: 5px; background-color: green; } .big { flex-basis: 110px; } </style></head> <body style="text-align:center;"> <h1 style="color:green;"> GeeksForGeeks </h1> <p id="GFG_UP"> How to make a div span two rows in a grid using CSS </p> <div id="outer"> <div class="div"></div> <div class="div"></div> <div class="div big"></div> <div class="div"></div> <div class="div"></div> <div class="div"></div> <div class="div"></div> <div class="div"></div> <div class="div"></div> </div></body> </html> |
Выход:

Подход 2:
- Сделайте внешний DIV на уровне блока.
- Создайте столбец сетки шириной 90 пикселей и сделайте это 5 раз.
- Строки будут созданы автоматически.
- Свойства нравятся. grip-gap - это сокращение от grid-row-gap и grid-column-gap .
- Большой элемент будет занимать строки с 1 по 3.
- Большой элемент будет занимать от 2 до 3 линий столбцов сетки.
Example:
<!DOCTYPE HTML><html> <head> <style> #outer { display: grid; grid-template-columns: repeat(5, 90px); grid-auto-rows: 50px; grid-gap: 10px; width: 516px; } .big { grid-row: 1 / 3; grid-column: 2 / 3; } .div { background-color: green; } </style></head> <body style="text-align:center;"> <h1 style="color:green;"> GeeksForGeeks </h1> <p id="GFG_UP"> How to make a div span two rows in a grid using CSS </p> <div id="outer"> <div class="div"></div> <div class="div"></div> <div class="div big"></div> <div class="div"></div> <div class="div"></div> <div class="div"></div> <div class="div"></div> <div class="div"></div> <div class="div"></div> </div></body> </html> |
Выход: