Грид-разметка CSS: единица измерения fr
Development | Комментировать запись
В CSS Grid Layout появилась единица измерения под названием Fr. Fr — дробная единица гибкости. 1fr равна 1 части доступного пространства. Благодаря fr вам больше не нужно пересчитывать ширину разделов. Единица гибкости fr берет 100% экрана и равномерно распределяет его между элементами сетки.
Ниже приведены несколько примеров использования единицы fr. Элементы в этих примерах размещаются внутри областей сетки.
.container {
display: grid;
grid-template-columns: 1fr 1fr 1fr 1fr;
grid-template-rows: 100px 200px 100px;
grid-template-areas:
"head head2 . side"
"main main2 . side"
"footer footer footer footer";
}
В данном случае каждый из 4 столбцов занимает одинаковое количество места.
Примеры использования fr
В вышеприведенном примере можно изменить значения fr.
container {
/* ... */
grid-template-columns: 1fr 1fr 40px 20%;
grid-template-rows: 100px 200px 100px;
/* ... */
}
Обратите внимание, как изменится макет.
В следующем примере элемент боковой панели покрывает 2fr, поэтому он будет такой же ширины, как элементы, охватывающие 1-й и 2-й столбцы:
.container {
/* ... */
grid-template-columns: 1fr 1fr 40px 2fr;
grid-template-rows: 100px 200px 100px;
/* ... */
}
Смешанные единицы
Как вы заметили в предыдущих примерах, вы можете смешивать значения fr с фиксированными и процентными значениями. Значения fr займут пространство, оставшееся после того, как будут распределены другие значения.
Например, если у вас есть сетка с 4 столбцами, первый столбец будет иметь размер 300 пикселей, второй — 80 пикселей (10% от 800 пикселей), третий и четвертый столбцы — 210 пикселей (каждый из которых будет занимать половину оставшегося пространства).
main {
width: 800px;
display: grid;
grid-template-columns: 300px 10% 1fr 1fr;
/* 300px 80px 210px 210px */
grid-template-rows: auto;
}
Читайте также: Грид-разметка CSS: модуль CSS Grid Layout
Tags: CSS