Bootstrap 3 и 4 позиционирование, выравнивание элементов

bootstrap col

При работе с bootstrap 3 я использую позиционирование сеткой (таблицей), об этом в начале статьи.

А в bootstrap 4 используется новый режим flexbox, но основные приёмы работы с сеткой остались с небольшими изменениями об этом в середине статьи.

bootstrap

Код скрина выше выглядит следующим образом:

содержание

Правила игры Bootstrap 3

  • Класс row задает расположение блоков в виде одной строки;
  • Строка в bootstrap содержит максимум 12 столбцов;
  • Класс col-ml-4 задает столбец строки, где
    • col (column) — столбец строки;
    • md — идентификатор устройства, bootstrap разделил все устройства на 4 группы в зависимости от ширины экрана;
    • 4 — количество условных единиц(столбцов) ширины будет занимать блок, из 12. То есть div с классом col-ml-4 займет 1/3 ширины экрана устройства шириной от 992 пикселей;

Типы классов устройств

  1. col-xs-*: для устройств с шириной экрана меньше 768 пикселей;
  2. col-sm-*: для устройств с шириной экрана от 768 пикселей и выше;
  3. col-md-*: для устройств с шириной экрана от 992 пикселя и выше;
  4. col-lg-*: для устройств с шириной экрана от 1200 пикселей и выше;

Как видно из примера выше я использовал сразу три класса одновременно для более детального отображения на различных устройствах

Так же как видно из кода я использовал разные значения столбцов для разных устройств — главное что бы в общем было 12 единиц. Мы можем задавать любую другую ширину для каждого устройства:

bootstrap col

Отступы

Классы col-md(sm|lg)-offset-* задают смещение относительно левого блока или начала строки в условных единицах

Класс col-md-offset-4 будет смещать правый блок на 4 условных единицы вправо:

Некоторые примеры по использованию смещения:

Порядок столбцов

С помощью классов col-md(sm|lg)-push-* и col-md(sm|lg)-pull-* мы можем переопределить порядок блоков в строке. Например, класс col-md-push-4 сдвигает блок на четыре единицы вправо от текущего положения. И наоборот, класс col-md-pull-4 сдвигает блок влево от текущей позиции. Так, предыдущий пример со смещением мы могли бы переписать таким способом:

Либо изменить порядок следования блоков и получить тот же результат

в последнем примере правый блок сместится влево на четыре единицы, а левый блок — вправо на 8 единиц.

Правила игры Bootstrap 4.

Flexbox

Режим flexbox позволяет макету автоматически вычислять размер каждой колонки.

Безразмерные колонки в сетке flexbox будут поровну делить доступное пространство, всегда заполняя весь ряд.

Можно указать размер для одной колонки, а остальные колонки равномерно распределят оставшееся пространство между собой. Укажем размер у среднего блока. Остальные распределятся поровну.

Используя классы col-{breakpoint}-auto, можно создать блок, размер которого будет определяться его содержимым. Также для блока можно задать классы горизонтального выравнивания. В этом случае общий ряд будет сжат до необходимых размеров.

Можно оставить стандартное поведение, не сжимая общую ширину.

Вы можете использовать опорные точки для точного задания размеров колонок. В остальных случаях можно ограничиться классами col и col-*.

Из стопки в ряд

Используя классы col-sm-*, вы можете создать базовую сеточную систему, которая разместит блоки в виде стопки на телефонах, а затем будет выводить блоки в один ряд.

Смешиваем все классы

Можете комбинировать все классы, как вам нужно.

Вертикальное выравнивание

Flexbox дает два способа вертикального позиционирования колонок.

Выравниваем колонки внутри ряда относительно верха, середины, низа, если позволяет высота. Указываем у row классы flex-items-xs-startflex-items-xs-centerflex-items-xs-end.

Также можно выровнять колонки внутри одного ряда относительно друг друга, если колонки будут использовать классы align-self-startalign-self-centeralign-self-end.

Горизонтальное выравнивание

Создаём блоки, размер которых меньше 12 колонок. Дальше управляем их выравниванием из-за свободного места, указывая у ряда row классы justify-content-startjustify-content-centerjustify-content-end. Также обратите внимание на классы justify-content-aroundjustify-content-between, которые окружают свободно место.

Промежутки

Используйте класс .no-gutters, чтобы убрать промежутки между блоками. Класс удаляет отрицательные margins из .row и горизонтальные padding из всех дочерних колонок.

Сортировка колонок

В обычной системе сеток, если нам необходимо поменять порядок колонок, нам нужно использовать push и pull.

Разработчики Bootstrap реализовали встроенное свойство flexbox order на основе трех классов сортировки, которые применим к колонкам col:

  • .flex-first – отображается первым
  • .flex-last – отображается последним
  • .flex-unordered – отображается между первым и последним

Смещение колонок

Для сдвига колонок вправо используйте .offset-md-*, которые увеличивают левый отступ на * колонок. Например, .offset-md-4 сдвигает на четыре колонки.

Заключение

Таким образом, используя класс row и классы столбцов, мы можем задать общее расположение элементов, а адаптивность bootstrap гарантирует, что на любых устройствах подобная сетка элементов будет выглядеть вполне нормально.

Подписаться
Уведомлять о
guest

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.

0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии
0
Оставьте комментарий! Напишите, что думаете по поводу статьи.x