Все свойства модуля CSS Flexbox
display: flex / inline-flex
Основное свойство для flex-конейнера без которого остальные свойства работать не будут. При установке данного свойства все блоки внутри данного контейнера становятся флекс-элементами и выстраиваются в одну линию.
display: flex;
}
Свойства для flex-контейнера
justify-content
Отвечает за положение элементов в строке относительно ширины контейнера (по горизонтали)
display: flex;
justify-content: flex-start;
}
align-items
Отвечает за положение элементов в строке относительно высоты контейнера (по вертикали)
display: flex;
height: 150px; /* высота flex-контейнера */
align-items: stretch;
}
flex-direction
Задаёт направление основных осей в контейнере и тем самым определяет положение флекс-элементов в контейнере
display: flex;
flex-direction: row;
}
flex-wrap
Указывает, как будут располагаться флекс-элементы, в одной строке либо переноситься на новую строку
display: flex;
flex-wrap: nowrap;
}
/* задаем ширину всем flex-элементам */
.flex_element {
width: 33%;
}
Свойства для управления определенными flex-элементами
align-self
Отвечает за положение определенного элемента в строке относительно высоты контейнера (по вертикали). Принцип работы такойже как и у свойства align-self, только действует на конкретный элемент. Все значения такиеже как и у свойства align-items
display: flex;
height: 150px; /* высотуа flex-контейнера */
}
/* выбираем 2 элемент */
.flex_element:nth-child(2) {
background: var(--color);
align-self: stretch;
}
order
Задает порядок флекс-элемента. Нумерация начинается с 1, т.е. первый флекс-элемент будет (order: 1;). Если Вы хотите установить какой-либо элемент перед первым элементом необходимо указать значение меньше 1 (order: 0) либо обоим элементам задать свойство order. При равных значениях order элементы выводятся в том порядке, в каком они появляются в исходном коде.
display: flex;
}
/* выбираем 2 элемент */
.flex_element:nth-child(2) {
background: var(--color);
order: 2;
}
flex-basis
Задает минимальную ширину элементу в px или %, auto - ширина равная относительно ширины содержимого контента
display: flex;
}
/* выбираем 1 элемент */
.flex_element:nth-child(1) {
background: var(--color);
flex-basis: auto;
}
flex-grow
Определяет, сколько пространства может занимать флекс внутри контейнера. В качестве значения принимаются числа, они задают пропорции каждого флекса. К примеру, если для всех элементов установлено значение 1, то они получатся равного размера. Если какой-то элемент получил значение 2, то его размер будет в два раза больше остальных.
display: flex;
width: 100%;
}
/* выбираем 1 элемент */
.flex_element:nth-child(1) {
background: var(--color);
flex-grow: 0;
}
flex-shrink
Устанавливает коэффициент сжатия флексов в контейнере и задаёт, насколько элемент будет уменьшаться по отношению к другим флексам, чтобы разместить все элементы в одну строку. Принимаются целые (1, 2, 3,…) или дробные числа (например: 0.6). Отрицательные значения игнорируются.
display: flex;
width: 100%;
}
/* выбираем 1 элемент */
.flex_element:nth-child(1) {
background: var(--color);
/* устанавливаем базовую ширину 300px*/
flex-basis: 300px;
flex-shrink: 1;
}
flex
Свойство flex - это сокращенное свойство, определяющее способность гибкого элемента растягиваться или сжиматься для заполнения собой доступного свободного пространства. Это свойство доновременно устанавливает значения для flex-grow, flex-shrink и flex-basis.
display: flex;
width: 100%;
}
/* выбираем 1 элемент */
.flex_element:nth-child(1) {
background: var(--color);
flex: 0 1 auto;
}