Top.Mail.Ru

Контейнеры Flex

Контейнеры Flex очень плотно заняли свою позицию в верстке вебстраниц. В
верстку они пришли лишь пару лет назад, но каждый уважающий себя верстальщик
о них уже точно знает. Они принесли с собой новые возможности обработки
отдельных HTML-элементов страницы.
Если попытаться несложно объяснить, то технология Flexbox очень просто решает
некогда сложные задачи:

  • выравнивает элементы по вертикали;
  • прижимает подвал внизу экрана;
  • ставит блоки в один ряд, чтобы они заняли все свободное пространство;
  • растягивать блоки по высоте и ширине;
  • помогает создать адаптивную верстку.

Эти задачи решаются и без flex-контейнеров. Но тогда это происходит какими-то
сложными и обходными путями при помощи «костылей»(когда используются
свойства CSS не по назначению). Flexbox же это все делает так, как задумано,
просто и легко.
Flexbox поддерживается практически всеми популярными и современными
браузерами. Поэтому проблем с этой технологией не должно возникать ни у кого.

Flex центрирование по вертикали и горизонтали

Отцентровать элементы на странице, особенно по вертикали раньше было очень
сложно. Для это приходилось искать разнообразные хаки. Но flexbox существенно
упростил эту задачу, поэтому теперь можно тратить свои силы и энергию на другие
задачи по проекту.

Flex центрирование по горизонтали

Осуществляется все очень просто. Допустим у нас есть некий div, который содержит
2 каких-нибудь элемента, которые мы хотим центровать по горизонтальной оси. Для
этого нужно будет всего-то использовать CSS свойство justify-content.
Пример нашего div-а:
<div class=“boxFlex“>
<p> Первый элемент блока</p>

<p> Второй элемент блока</p>
</div>
Пример нашего CSS:

.boxFlex {
display: flex;
justify-content: center;
}
Далее могут идти другие CSS-свойства.
Помимо центрирование justify-content может приобретать следующие значения:

  • flex-start — все элементы располагаются вначале flexbox, это значение по умолчанию;
  • flex-end — элементы располагаются в конце flexbox;
  • space-between – элементы располагаются в одной линии с равными промежутками между собой но без промежутков вначале и в конце контейнера;
  • space-around – элементы располагаются с промежутками между собой, а также с промежутками в начале и в конце контейнера;
  • initial — придает элементам значения по умолчанию;
  • inherit — придает элементам значение родительского элемента.

Flex центрирование по вертикали

За центрирование по вертикали отвечает CSS свойство align-items. Допустим, мы к
нашим описанным выше блокам, еще хотим применить центрирование по
вертикали. Тогда у нас получится следующий CSS код:
.boxFlex {
display: flex;
justify-content: center;
align-items: center;
}
Помимо центрирования, CSS свойство align-items может приобретать значения: flex-
start, flex-end, initial, inherit, как и при горизонтальном выравнивании, только
ориентируясь на вертикальное выравнивание, а также несколько собственных
значений:

  • stretch — это значение по умолчанию, когда элементы расположены по всему размеру flexbox;кстати, это значение используют когда нужно при помощи css, используя flex, растянуть элемент по высоте контейнера.
  • baseline – элементы располагаются в базовой линии flexbox

.

Возможно вам будет интересно почитать статью “Не баг, а фича. Что это значит ?”

Заключение

Flexbox — довольно простая технология, со множеством различных настроек
элементов контейнера. Мы показали лишь flex центрирование элементов по
вертикали и горизонтали. А также, что используя CSS свойство align-items: stretch,
можно растянуть элемент по высоте контейнера. Но это лишь капля в море, на что
способна технология flexbox. Потому что она способна создать по-настоящему
адаптивную верстку вашей HTML-странице.

Text.ru - 100.00%
Поделись статьей с друзьями!

Ответить

Ваш адрес email не будет опубликован. Обязательные поля помечены *