Flexbox блочная система · Bootstrap
Варианты структурирования страниц с Bootstrap, включая глобальные стили, необходимые инструменты, блочная система и другие.
Фантазии более современную блочная система? Включить flexbox поддержки в Bootstrap чтобы воспользоваться всеми преимуществами CSS’гибкий модуль коробка для еще большего контроля над %вашего сайта 3%, выравнивания и распределения информации.
Bootstrap flexbox грид включает поддержку для каждого объекта из нашего по умолчанию значение блочная система, а затем некоторые. Пожалуйста, прочитайте по умолчанию значение блочная система документы прежде чем перейти через эту страницу. Особенности, которые покрыты подводятся только здесь. Обратите внимание, что Internet Explorer 9 не поддерживает flexbox, поэтому с осторожностью при включении его.
Внимание! этот flexbox грид документация приводится в действие дополнительный файл CSS, который переопределяет по умолчанию блочная система с CSS.
Содержание
- Содержание
- Как это работает
- Авто-разметка столбцов
- Адаптивный flexbox
- Вертикальное выравнивание
- Горизонтальное выравнивание
Как это работает
В flexbox блочная система ведет себя похожими на наши по умолчанию значение блочная система, но с некоторыми существенными отличиями:
- Грид примеси и для создания более смысловых макетов включить поддержку flexbox. Просто включить flexbox поддержки, чтобы использовать их, как вы бы в противном случае.
- Вложения, зачеты, толкает, и тянет все поддерживается в flexbox блочная система.
- Flexbox грид столбиками без ширины установить автоматически разметка с одинаковой шириной. Например, четыре столбца автоматически быть шириной 25%.
- Flexbox грид столбцы имеют значительно более доступные варианты выравнивания, включая выравнивание по вертикали.
- В отличие от По умолчанию значение блочная система где грид столбец начинается в полную ширину в
xs
уровня, flexbox требует.col-{breakpoint}
класс для каждого уровня.
Холодок? Awesome—продолжайте чтение для получения дополнительной информации и некоторые фрагменты кода.
Авто-разметка столбцов
Когда flexbox поддержки, вы можете использовать точки останова конкретных классов столбца равной ширины столбцов. Добавить любое количество .col-{breakpoint}
s для каждой точки необходимо и вы хорошо идти. Например, вот два грид разметки, которые применяются к каждому устройству и возможность просмотра.
1 of 2
1 of 2
1 of 3
1 of 3
1 of 3
<div> <div> <div> 1 of 2 </div> <div> 1 of 2 </div> </div> <div> <div> 1 of 3 </div> <div> 1 of 3 </div> <div> 1 of 3 </div> </div> </div>
Авто-%и 2% flexbox грид столбцы также означает, что вы можете установить ширину одного столбца, а остальные автоматически изменяет вокруг него. Вы можете использовать предопределенный грид классов (как показано ниже), грид примеси, или рядные шириной. Обратите внимание, что другие столбцы изменится независимо от ширины центральной колонки.
1 of 3
2 of 3 (wider)
3 of 3
1 of 3
2 of 3 (wider)
3 of 3
<div> <div> <div> 1 of 3 </div> <div> 2 of 3 (wider) </div> <div> 3 of 3 </div> </div> <div> <div> 1 of 3 </div> <div> 2 of 3 (wider) </div> <div> 3 of 3 </div> </div> </div>
Адаптивный flexbox
В отличие от По умолчанию значение блочная система, в flexbox грид требуется класс для полной ширины столбцов. Если у вас есть .col-sm-6
и не добавить .col-xs-12
ваш xs
грид не будет правильно отображаться. Обратите внимание, что flexbox грид уровни еще шкалу в точки останова, так что если вы хотите два 50% широкие столбцы через sm
, md
и lg
, нужно только установить . col-sm-6
.
1 of 2 (stacked on mobile)
1 of 2 (stacked on mobile)
<div> <div> <div> 1 of 2 (stacked on mobile) </div> <div> 1 of 2 (stacked on mobile) </div> </div> </div>
Вертикальное выравнивание
Используйте flexbox коммунальные услуги выравнивание вертикальное выравнивание столбцов.
One of three columns
One of three columns
One of three columns
One of three columns
One of three columns
One of three columns
<div> <div> <div> One of three columns </div> <div> One of three columns </div> <div> One of three columns </div> </div> <div> <div> One of three columns </div> <div> One of three columns </div> <div> One of three columns </div> </div> <div> <div> One of three columns </div> <div> One of three columns </div> <div> One of three columns </div> </div> </div>
One of three columns
One of three columns
One of three columns
<div> <div> <div> One of three columns </div> <div> One of three columns </div> <div> One of three columns </div> </div> </div>
Горизонтальное выравнивание
Flexbox утилиты для горизонтального выравнивания существуют по ряду разметка вариантов.
One of two columns
One of two columns
One of two columns
One of two columns
One of two columns
One of two columns
One of two columns
One of two columns
One of two columns
One of two columns
<div> <div> <div> One of two columns </div> <div> One of two columns </div> </div> <div> <div> One of two columns </div> <div> One of two columns </div> </div> <div> <div> One of two columns </div> <div> One of two columns </div> </div> <div> <div> One of two columns </div> <div> One of two columns </div> </div> <div> <div> One of two columns </div> <div> One of two columns </div> </div> </div>
Bootstrap 4.
FlexboxРаньше Bootstrap использовал 12-ти колоночную сетку. Теперь используется новый режим flexbox, но основные приёмы работы с сеткой остались с небольшими изменениями.
Режим flexbox позволяет макету автоматически вычислять размер каждой колонки.
<div> <div> <div> Половинка </div> <div> Половинка </div> </div> <div> <div> Одна треть </div> <div> Одна треть </div> <div> Одна треть </div> </div> </div>
Половинка
Половинка
Одна треть
Одна треть
Одна треть
Безразмерные колонки в сетке flexbox будут поровну делить доступное пространство, всегда заполняя весь ряд.
Можно указать размер для одной колонки, а остальные колонки равномерно распределят оставшееся пространство между собой. Укажем размер у среднего блока. Остальные распределятся поровну.
<div> <div> <div> (12 - 6) / 2 = 3 </div> <div> 6 колонок </div> <div> (12 - 6) / 2 = 3 </div> </div> <div> <div> </div> <div> 5 колонок </div> <div> </div> </div> <div> <div> </div> <div> 4 колонки </div> <div> </div> </div> </div>
(12 — 6) / 2 = 3
6 колонок
(12 — 6) / 2 = 3
5 колонок
4 колонки
Используя классы col-{breakpoint}-auto, можно создать блок, размер которого будет определяться его содержимым. Также для блока можно задать классы горизонтального выравнивания. В этом случае общий ряд будет сжат до необходимых размеров.
<div> <div> <div> 1 of 3 </div> <div> Слово </div> <div> 3 of 3 </div> </div> <div> <div> 1 of 3 </div> <div> Два слова </div> <div> 3 of 3 </div> </div> <div> <div> 1 of 3 </div> <div> Здесь три слова </div> <div> 3 of 3 </div> </div> </div>
1 of 3
Слово
3 of 3
1 of 3
Два слова
3 of 3
1 of 3
Здесь три слова
3 of 3
Можно оставить стандартное поведение, не сжимая общую ширину.
1 of 3
Два слова
3 of 3
<div> <div> <div> 1 of 3 </div> <div> Два слова </div> <div> 3 of 3 </div> </div> </div>
Вы можете использовать опорные точки для точного задания размеров колонок. В остальных случаях можно ограничиться классами
col
col
col
col
col-8
col-4
<div> <div>col</div> <div>col</div> <div>col</div> <div>col</div> </div> <div> <div>col-8</div> <div>col-4</div> </div>
Из стопки в ряд
Используя классы col-sm-*, вы можете создать базовую сеточную систему, которая разместит блоки в виде стопки на телефонах, а затем будет выводить блоки в один ряд.
col-sm-8
col-sm-4
col-sm
col-sm
col-sm
<div> <div>col-sm-8</div> <div>col-sm-4</div> </div> <div> <div>col-sm</div> <div>col-sm</div> <div>col-sm</div> </div>
Смешиваем все классы
Можете комбинировать все классы, как вам нужно.
.col .col-md-8
.col-6 .col-md-4
.col-6 .col-md-4
.col-6 .col-md-4
.col-6 .col-md-4
.col-6
.col-6
<!-- Stack the columns on mobile by making one full-width and the other half-width --> <div> <div>.col .col-md-8</div> <div>.col-6 .col-md-4</div> </div> <!-- Columns start at 50% wide on mobile and bump up to 33.3% wide on desktop --> <div> <div>.col-6 .col-md-4</div> <div>.col-6 .col-md-4</div> <div>.col-6 .col-md-4</div> </div> <!-- Columns are always 50% wide, on mobile and desktop --> <div> <div>.col-6</div> <div>.col-6</div> </div>
Вертикальное выравнивание
Flexbox дает два способа вертикального позиционирования колонок.
Выравниваем колонки внутри ряда относительно верха, середины, низа, если позволяет высота. Указываем у row классы flex-items-xs-start, flex-items-xs-center, flex-items-xs-end.
По верху
По верху
По верху
По центру
По центру
По центру
По низу
По низу
По низу
<div> <div> <div> По верху </div> <div> По верху </div> <div> По верху </div> </div> <div> <div> По центру </div> <div> По центру </div> <div> По центру </div> </div> <div> <div> По низу </div> <div> По низу </div> <div> По низу </div> </div> </div>
Также можно выровнять колонки внутри одного ряда относительно друг друга, если колонки будут использовать классы align-self-start, align-self-center, align-self-end.
One of three columns
One of three columns
One of three columns
<div> <div> <div> One of three columns </div> <div> One of three columns </div> <div> One of three columns </div> </div> </div>
Горизонтальное выравнивание
Создаём блоки, размер которых меньше 12 колонок. Дальше управляем их выравниванием из-за свободного места, указывая у ряда row классы justify-content-start, justify-content-center, justify-content-end. Также обратите внимание на классы justify-content-around, justify-content-between, которые окружают свободно место.
По левому краю
По левому краю
По центру
По центру
По правому краю
По правому краю
Around
Around
Between
Between
<div> <div> <div> По левому краю </div> <div> По левому краю </div> </div> <div> <div> По центру </div> <div> По центру </div> </div> <div> <div> По правому краю </div> <div> По правому краю </div> </div> <div> <div> Around </div> <div> Around </div> </div> <div> <div> Between </div> <div> Between </div> </div> </div>
Промежутки
Используйте класс . no-gutters, чтобы убрать промежутки между блоками. Класс удаляет отрицательные margins из .row и горизонтальные padding из всех дочерних колонок.
.col-12 .col-sm-6 .col-md-8 no-gutters
.col-6 .col-md-4
.col-12 .col-sm-6 .col-md-8
.col-6 .col-md-4
Сортировка колонок
В обычной системе сеток, если нам необходимо поменять порядок колонок, нам нужно использовать push и pull.
Разработчики Bootstrap реализовали встроенное свойство flexbox order на основе трех классов сортировки, которые применим к колонкам col:
- .flex-first – отображается первым
- .flex-last – отображается последним
- .flex-unordered – отображается между первым и последним
Первый, но не первый и не последний
Второй, но последний
Третий, но первый
<div> <div> <div> Первый, но не первый и не последний </div> <div> Второй, но последний </div> <div> Третий, но первый </div> </div> </div>
Смещение колонок
Для сдвига колонок вправо используйте . offset-md-*, которые увеличивают левый отступ на * колонок. Например, .offset-md-4 сдвигает на четыре колонки.
.col-md-4
.col-md-4 .offset-md-4
.col-md-3 .offset-md-3
.col-md-3 .offset-md-3
.col-md-6 .offset-md-3
<div> <div> <div>.col-md-4</div> <div>.col-md-4 .offset-md-4</div> </div> <div> <div>.col-md-3 .offset-md-3</div> <div>.col-md-3 .offset-md-3</div> </div> <div> <div>.col-md-6 .offset-md-3</div> </div> </div>
Реклама
Bootstrap 4 Flex
❮ Предыдущая Далее ❯
Bootstrap 4 Flex
Используйте классы flex для управления компоновкой компонентов Bootstrap 4.
Flexbox
Самая большая разница между Bootstrap 3 и Bootstrap 4 заключается в том, что Bootstrap 4 теперь использует flexbox вместо float для обработки макета.
Модуль Flexible Box Layout упрощает разработку гибкой адаптивной структуры макета без использования float или позиционирования. Если вы новичок в flex, вы можете прочитать об этом в нашем учебнике по CSS Flexbox.
Примечание. Flexbox не поддерживается в IE9 и более ранних версиях.
Если вам требуется поддержка IE8-9, используйте Bootstrap 3. Это наиболее стабильная версия Bootstrap, и она по-прежнему поддерживается командой для исправления критических ошибок и изменений в документации. Однако новые функции добавляться не будут. это.
Чтобы создать контейнер flexbox и преобразовать прямые дочерние элементы в flex-элементы, используйте класс d-flex
:
Example
Flex item 1
Flex-элемент 2
Flex-элемент 3
Пример
Попробуйте сами »
Чтобы создать встроенный контейнер flexbox, используйте класс d-inline-flex
:
Пример
Гибкий элемент 1
Гибкий элемент 2
Гибкий элемент 3
Пример
<дел>