Блочная система · Bootstrap на русском. Что такое сетка бутстрап? Содержимое адаптивной ширины

Подписаться
Вступай в сообщество «vityazevo-pizz-and-roll.ru»!
ВКонтакте:

Всем привет, друзья! В середине 2013 года вышел Bootstrap 3, который за прошедшие годы неплохо зарекомендовал себя как удобный, расширяемый CSS каркас для быстрого создания адаптивных макетов. Миллионы сайтов успешно используют этот фреймворк и мы уже порядком привыкли к нему.

Класснуть

Запинить

18 января 2018 года случилось важное событие - вышла из беты долгожданная версия Bootstrap 4 , основанная на использовании модели Flexbox для разметки, которая в настоящее время уже имеет поддержку всех современных браузеров и является более удобной и гибкой для разработчиков, нежели классическая модель разметки, основанная на Float. Теперь с полной уверенностью можно сказать, что на «Флексах» не можно, а НУЖНО верстать!

Дополнительные материалы урока Bootstrap 4

  1. Все примеры урока вы можете потестировать самостоятельно: Скачать архив
  2. Более подробно ознакомиться с документацией Bootstrap 4 вы можете на оф. сайте ;
  3. Последний стартер, включающий Bootstrap 4: OptimizedHTML 5 .

Сегодня мы подробно разберем работу с сеткой Bootstrap 4, по ходу дела сравнивая её со старой версией. Данный урок будет полезен вам не только если вы новичок и знакомитесь с Bootstrap, но и в том случае, если вы опытный разработчик и хотите изучить все правила и нюансы верстки с использованием сетки Bootstrap 4 и Flexbox инструментов, входящих в её состав.

1. Основные параметры сетки по-умолчанию

По-умолчанию сетка Bootstrap 4 очень похожа на сетку третьей версии, однако появились некоторые важные отличия.


Из таблицы основных опций мы можем заметить явные отличия от сетки третьей версии. Теперь отсутствует префикс класса «.col-xs-», отвечающий за самые маленькие разрешения, вместо него указывается упрощенный префикс «.col-». Можно ошибочно подумать, что префикс «.col-» отвечает за минимальные разрешения мобильных устройств, однако это не совсем так. Помимо всего прочего, префикс «.col-» - это одно из важнейших новшеств Bootstrap 4. Это класс, который отвечает за автоматическую разметку колонок на любом разрешении. Но об этом позже.

За малые разрешения (small) отвечает префикс «.col-sm-» с медиа-запросом от 576 пикс. Ширина контейнера составляет 540 пикс. Средние разрешения отрабатываются от 768 пикс. Ширина контейнера - 720 пикс. Большие разрешения работают с разрешения устройств от 992 пикс. Ширина контейнера - 960 пикс. И самые большие - от 1200 пикс. Ширина контейнера фиксируется на значении 1140 пикс.

Обратите внимание, что максимальные значения медиа-запросов имеют неточные значения с дробной частью «.98» в пикселях. Это заметно при выборе Desktop First метода верстки, где максимальная ширина медиа-запроса ограничена. Например, при компиляции Sass «+media-breakpoint-down(lg)» мы получим «@media (max-width: 1199.98px)». Здесь 0.02 пикселя освобождаются для старта следующего медиа-запроса. Имейте это ввиду. В следующих выпусках «Джедай верстки 8» мы рассмотрим этот и множество других моментов из этого урока на реальном примере.

2. Автоматическая разметка колонок

2.1 Колонки одинаковой ширины

С помощью нового универсального класса «.col» можно указать до 12 колонок в ряду (родитель «.row»), ширина которых будет автоматически вычислена в зависимости от количества элементов и будет равна.

Например:


2.2 Установка ширины одной колонки

Вы также можете явно установить ширину одной колонки, а остальные оставить автоматическими.

1 из 3
2 из 3 (широкое)
3 из 3
1 из 3
2 из 3 (широкое)
3 из 3

В данном примере второй элемент в третьем ряду имеет класс «.col-6» и второй элемент во втором ряду имеет класс «.col-5», которые занимают соответствующее количество колонок на всех разрешениях экрана. Ширина остальных колонок является отзывчивой и вычисляется автоматически, занимая всё оставшееся пространство.

2.3 Контент переменной ширины

Можно использовать класс «col-{breakpoint}-auto», чтобы определить контент с переменной шириной, в зависимости от занимаемого пространства содержимым колонки. Где breakpoint - размер экрана (xl, lg, md или sm).

1 из 3
Контент переменной ширины
3 из 3
1 из 3
Контент переменной ширины номер два
3 из 3

Здесь мы видим, что две центральные колонки занимают ширину, соответствующую ширине содержимого, однако в первом ряду благодаря классу «.justify-content-sm-center» у «.row» весь ряд центрируется и общая ширина зависит только от ширины центральной колонки, в то время, как второй ряд растягивается на всю доступную ширину, но вторая колонка остается фиксированной по ширине содержимого.

2.4 Мульти-ряд

Благодаря Bootstrap 4 вы можете сделать в одном ряду несколько строк (переносов). Реализовать это можно с помощью класса «.w-100», который очень похож на тег «br» и по-сути просто делает перенос колонок на новую строку.

col
col
col
col
col

Обратите внимание, что данный класс является частью дополнительных возможностей Bootstrap 4, которые подключаются к проекту отдельно в случае использования Sass версии проекта Bootstrap и находятся в папке «scss/utilities». Вы также можете подключить другие плагины из этой папки к вашему проекту по необходимости.

3. Адаптивные классы

3.1 Брейкпоинты

Очень интересная возможность Bootstrap 4 - возможность задавать универсальные колонки, которые будут отображаться на всех разрешениях. Это упомянутый ранее класс «.col». Кроме того, можно определить класс, указывающий конкретное количество колонок, занимаемое содержимым - это классы с префиксом «.col-{число колонок}», например «.col-6» говорит нам о том, что содержимое займёт 6 колонок из 12. В случае, когда конкретное количество задавать не обязательно, можно смело использовать универсальный класс «.col».

col
col
col
col
col-8
col-4

3.2 На мобильных устройствах

Вы можете использовать префикс класса «.col-sm-{количество занимаемых колонок}» для того, чтобы задать базовую сетку на всех разрешениях, кроме самых маленьких. На небольших экранах колонки такой сетки будут складываться друг под друга. На разрешениях больше - будут занимать столько места, сколько вы определили в классах.

col-sm-8
col-sm-4
col-sm
col-sm
col-sm

Здесь мы видим, что первый ряд на устройствах с разрешением более «sm», то-есть больше, чем 576 пикс. разбивается на 2 колонки - шириной 8 и 4 из 12-ти соответственно. Ширина колонок во втором ряду вычисляется автоматически, но на самых малых разрешениях эти колонки также складываются друг под друга, благодаря классу «.col-sm».

3.3 Создание сложной комбинированной сетки

С помощью Bootstrap вы можете создавать любые комбинации колонок при создании сетки. Для каждой колонки можно задать любое поведение на различных разрешениях с помощью адаптивных классов. Здесь отличия от третьей версии - только в наименованиях классов.

.col-12 .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

4. Выравнивание

Bootstrap 4 основан на «флексах» и дарит нам все возможности данной модели, которые доступны в простых готовых классах. В числе возможностей - вертикальное и горизонтальное выравнивание.

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

Верх
Верх
Верх
Середина
Середина
Середина
Низ
Низ
Низ

Помимо управления выравниванием через родительский «.row», можно выравнивать колонки, задавая им соответствующие классы:

Верх
Середина
Низ

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

Кроме того, Bootstrap 4 имеет в своём арсенале инструменты для горизонтального выравнивания колонок при помощи префикса «.justify-content-» у «.row».

row justify-content-start
row justify-content-start
row justify-content-center
row justify-content-center
justify-content-end
justify-content-end
justify-content-around
justify-content-around
justify-content-between
justify-content-between

4.3 Удаление полей между колонками

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


Для этого достаточно у элемента «.row» задать дополнительный класс «.no-gutters».

col-6 col-sm-4 col-md-4
col-6 col-sm-4 col-md-4
col-6 col-sm-4 col-md-4
col-6 col-sm-4 col-md-4
col-6 col-sm-4 col-md-4
col-6 col-sm-4 col-md-4
col-6 col-sm-4 col-md-4
col-6 col-sm-4 col-md-4
col-6 col-sm-4 col-md-4

4.4 Перенос колонок на новую строку

Если ряд (.row) заполняется суммарным количеством колонок более 12-ти, последующая колонка переносится на новую строку.

.col-9
.col-4
9 + 4 = 13 колонок - это больше 12. Данный элемент шириной в 4 колонки будет перенесён на новую строку.
.col-6
Следующие колонки расположатся вдоль строки.

Здесь всё также, как в 3-й версии Bootstrap.

5. Порядок элементов

5.1 Классы порядка элементов

Можно использовать специальные классы с префиксом «.order-» для определения порядка элементов. Если вы знакомы с Flex-вёрсткой, данные правила будут вам знакомы. Bootstrap 4 даёт возможность задавать порядок элементов с помощью классов. Можно задавать порядок напрямую (.order-1.order-md-2):

Первый неупорядоченный элемент

Или можно использовать специальные классы, которые определяют порядок первого и последнего элементов (.order-first, .order-last):

Первый неупорядоченный
Второй, упорядоченный как последний
Третий, упорядоченный как первый

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

По аналогии с Bootstrap 3, в 4-й версии также есть возможность горизонтального смещения колонок, однако реализовано это несколько иначе и для этого есть специальные классы с префиксом «.offset-».

5.2.1 Классы смещения

Сдвигать колонку вправо можно, используя классы «.offset-md-*», которые увеличивают левый отступ на * количество элементов. Из примера ниже, класс «.offset-md-2» сдвинет колонку «.col-md-4» на 2 колонки вправо, остальные примеры работают по аналогии:

.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

Можно сбрасывать отступ на всех разрешениях благодаря классу «.offset-*-0», где * - это sm, md, lg или xl.

6. Вложенность

Весьма ожидаемо, что Bootstrap 4 поддерживает вложенность элементов. Работает здесь всё также, как в третьей версии - чтобы вложить колонки в другие, необходимо создать дочерний класс «.row» и уже в него вкладывать колонки.

Уровень 1: «.col-sm-9»
Уровень 2: «.col-8 .col-sm-6»
Уровень 2: «.col-4 .col-sm-6»

Мы рассмотрели основные особенности работы с сеткой Bootstrap 4. Если у вас есть желание более подробно ознакомиться со всеми возможностями фреймворка, рекомендую изучить документацию на официальном сайте.

В следующем уроке мы рассмотрим настройку Bootstrap сетки под ваш конкретный проект на примере использования в стартовом шаблоне OptimizedHTML 4. А именно настройку, работу с переменными отступов, брейкпоинтов, количества колонок и прочего.

Основная разработка сайта для верстальщика начинается с правильного построения сетки сайта. Если вы используете Bootstrap 3, то понимание сетки фреймворка крайне необходимо. В этой небольшой заметки я постараюсь рассмотреть основные нюансы при использовании сетки от Bootstrap . В статья в основном дан перевод документации к Bootstrap Grid , но также приведены некоторые мои дополнения.

Контейнер-обертка

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

Используйте.container для отзывчивого с фиксированной шириной контейнера (максимальная ширина блока 1170px).

Используйте.container-fluid для контейнера с шириной на всю область просмотра.

Система сетки

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

Итак подходим к сути.

Сетки используют для построения макетов страниц посредством компоновки строк и колонок, которые содержат контент.

Основы работы сетки Bootstrap:

  • Row (строки) должны быть расположены внутри.container (fix) или.container-fluid (full-width) для правильного выравнивания и padding (отступов – рассмотрим ниже чуть более подробно).
  • Используйте rows (строки), чтобы создать горизонтальную группу колонок.
  • Контент должен быть расположен внутри колонок, и только колонки могут быть первыми дочерними элементами rows (строки).
  • Предопределенные классы сетки, например, такие как.row и.col-xs-4 , позволяют быстро создать макет сетки.
  • Колонки создают промежутки (зазоры между контентом колонок) посредством padding (отступов). Этот отступ смещается в строках для первой и последней колонки посредством отрицательного поля у элемента.row . Дополнение : более подробно об использовании отрицательных полей вы можете узнать , а если вкратце: так как у статичного элемента.row не задана ширина, то элемент.row будет вытолкнут по направлению left/right с увеличением ширины элемента.
  • Именно из-за смещения контент внутри сетки ниже выровнялся на одной линии с контентом не-сетки (речь очевидно о контенте статьи - http://getbootstrap.com/css/#grid).
  • Колонки сетки создаются при помощи указания одного номера из двенадцати возможных для колонок, которые вы хотите создать. Например, для построения трех равнозначных колонок достаточно использовать.col-xs-4 .
  • Если более чем 12 колонок расположены внутри одной строки, то каждая группа дополнительных колонок должна быть обернута новой строкой.
  • Классы сетки подразделяются в зависимости от ширины устройств, которые определены в точках останова. При этом, например, применив класс.col-md-* к элементу его стиль будет использован не только для средних устройств, но и к большим устройствам, но только если не задан класс.col-lg-* .

Чтобы понять все эти принципы было еще проще взгляните на изображение ниже:


Медиа-запросы

Для сетки используются следующие медиа-запросы (из LESS-файла):

/* Совсем маленькие устройства (phones, меньше 768px) */ /* Медиа-запросы отсутствуют, так как эти стили стоят в Bootstrap по умолчанию */ /* Небольшие устройства (планшеты, 768px и выше) */ @media (min-width: @screen-sm-min) { ... } /* Средние устройства (мониторы, 992px and up) */ @media (min-width: @screen-md-min) { ... } /* Большие устройства (большие мониторы, 1200px and up) */ @media (min-width: @screen-lg-min) { ... }

Настройки сетки

Совсем небольшие устройства
Phones
(<768px)
Небольшие устройства
Планшеты
(>=768px)
Средние устройства
Настольные
(>=992px)
Большие устройства
Настольные
(>=1200px)
Поведение сетки Горизонтальное все время Сжатая изначально, горизонтальная выше точки останова (видимо имеется ввиду, когда ширина устройства меньше, чем предусмотрено классом – смотрите медиа запросы)
Ширина контейнера None (auto) 750px 970px 1170px
Префикс класса .col-xs- .col-sm- .col-md- .col-lg-
# колонок 12
Ширина колонки Auto ~62px ~81px ~97px
Ширина зазора 30px (15px с каждой стороны колонки)
Вложение Yes
Смещение Yes
Упорядочение колонки Yes

Пример: сложенные по горизонтали

Используя класс.col-md-* , вы создаете сетку, которая начинает складываться (образуется стек) на мобильных устройствах; при этом на средних устройствах ячейки расположены горизонтально. Расположите колонки сетки в любом.row .

stacked-to-horizontal

HTML

.col-md-1
.col-md-1
.col-md-1
.col-md-1
.col-md-1
.col-md-1
.col-md-1
.col-md-1
.col-md-1
.col-md-1
.col-md-1
.col-md-1
.col-md-8
.col-md-4
.col-md-4
.col-md-4
.col-md-4
.col-md-6
.col-md-6

Пример: жидкий контейнер

Поменяйте сетку с фиксированной шириной на сетку с шириной на все окно браузера при помощи замены.container на.container-fluid .

HTML

...

Пример: мобильники и настольные устройства

Не хотите, чтобы ваши колонки складывались на мобильных устройствах? Применяйте к колонкам классы для небольших и средних устройств: .col-xs-* , .col-md-* . Смотрите пример ниже для лучшего понимания принципов работы использования нескольких классов.

Пример на официальном сайте - grid-example-mixed

HTML

.col-xs-12 .col-md-8
.col-xs-6 .col-md-4
.col-xs-6 .col-md-4
.col-xs-6 .col-md-4
.col-xs-6 .col-md-4
.col-xs-6
.col-xs-6

Пример: мобильники, планшеты и настольные устройства

Основываясь на предыдущем примере создайте еще более мощный и динамический макет с классом для планшетов.col-sm-* .

Http://getbootstrap.com/css/#grid-example-mixed-complete

Пример на официальном сайте - grid-example-mixed-complete

HTML

.col-xs-12 .col-sm-6 .col-md-8
.col-xs-6 .col-md-4
.col-xs-6 .col-sm-4
.col-xs-6 .col-sm-4
.col-xs-6 .col-sm-4

Пример: смещение колонки на новую строку

Если в строке расположено более 12 колонок, каждая группа дополнительных колонок, как самостоятельная единица сместится на новую линию.

Пример на официальном сайте - grid-example-wrapping

HTML

.col-xs-9
.col-xs-4
Since 9 + 4 = 13 > 12, this 4-column-wide div gets wrapped onto a new line as one contiguous unit.
.col-xs-6
Subsequent columns continue along the new line.

Сброс для адаптивных колонок

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

Пример на официальном сайте - grid-responsive-resets

HTML

.col-xs-6 .col-sm-3
.col-xs-6 .col-sm-3
.col-xs-6 .col-sm-3
.col-xs-6 .col-sm-3

In addition to column clearing at responsive breakpoints, you may need to reset offsets, pushes, or pulls. See this in action in the grid example.

HTML

.col-sm-5 .col-md-6
.col-sm-5 .col-sm-offset-2 .col-md-6 .col-md-offset-0
.col-sm-6 .col-md-5 .col-lg-6
.col-sm-6 .col-md-5 .col-md-offset-2 .col-lg-6 .col-lg-offset-0

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

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

Пример на официальном сайте - grid-offsetting

HTML

.col-md-4
.col-md-4 .col-md-offset-4
.col-md-3 .col-md-offset-3
.col-md-3 .col-md-offset-3
.col-md-6 .col-md-offset-3

Вложенные колонки

Чтобы вложить ваш контент в существующую сетку, добавьте новую.row и установите.col-md-* колонок внутри уже существующей.col-sm-* колонки.

Пример на официальном сайте - grid-nesting

HTML

Level 1: .col-sm-9
Level 2: .col-xs-8 .col-sm-6
Level 2: .col-xs-4 .col-sm-6

Порядок колонок

Порядок для колонок сетки можно изменить при помощи классов.col-md-push-* и.col-md-pull-* .

Пример на официальном сайте - grid-column-ordering

HTML

.col-md-9 .col-md-push-3
.col-md-3 .col-md-pull-9

Система сеток Twitter Bootstrap 3 - это быстрый и легкий путь для создания макета сайта.

Описание системы сеток Twitter Bootstrap 3

Сетки Bootstrap применяют при разработке макетов веб-страниц и для создания разметки блоков, в которых необходимо обеспечить правильное расположение элементов. Разрабатывать сетку начинают с контейнера, который имеет фиксированную или плавающую ширину.

Контейнер с фиксированной шириной

Контейнер с фиксированной шириной (

) имеет строго определенную ширину, которая изменяется при изменении ширины рабочей области окна браузера и ориентируется в горизонтальном направлении по центру, с помощью свойств margin-left:auto и margin-right:auto . Также, контейнер задает внутренние отступы слева и справа по 15рх (padding-left:15px и padding-right:15px) для содержимого, которое в него помещено.

Контейнер с плавающей шириной

Контейнер с плавающей шириной (

) занимает всю ширину окна браузера и задает внутренние отступы слева и справа по 15рх (padding-left:15px и padding-right:15px) для содержимого, которое в него помещено.

Размещение рядов внутри контейнера

Следующим этапом является размещение рядов (блоки div с классом.row) внутри контейнера. Ширина рядов (

) будет равна ширине контейнера, т.к. данный блок имеет отрицательные внешние отступы слева и справа по 15рх (margin-left:-15px и margin-right:-15px).

Размещение блоков внутри рядов Bootstrap

Внутри ряда помещаются блоки с классом col-*-* , внутри которых размещается содержимое или другие ряды. Ширина блоков с классом col-*-* задаётся в относительной форме с помощью указания количества колонок Bootstrap. Так как ряд в Bootstrap по умолчанию состоит из 12 колонок, то минимальная ширина блока col-*-* равна одной колонке Bootstrap, а максимальная ширина блока col-*-* равна 12 колонкам Bootstrap.

Например, если мы хотим создать в ряду 3 блока с одинаковой шириной, то нам необходимо установить ширину этих блоков равным 4 колонкам Bootstrap (

...
).

Расчёт ширины блоков

Например: Рассчитать ширину блока в пикселях можно следующим образом:
[Ширина блока] = [Ширина колонки Bootstrap]*[Количество колонок, из которых состоит блок],
где: [Ширина колонки Bootstrap] = [Ширина ряда (row)] / 12.

[Ширина колонки Bootstrap] = 970 / 12 = 81px.
[Ширина блока] = 81 * 4 = 324px.

Система сеток под различные устройства

Для создания макетов веб-страниц под различные устройства (смартфоны, планшеты, ноутбуки и персональные компьютеры) необходимо воспользоваться предопределенными классами сеток Twitter Bootstrap 3.

Например, вы можете использовать класс.col-xs-* для создания сетки для устройств с маленьким экраном, таких как смартфоны. Точно так же класс. col-sm-* - для устройств с небольшим экраном, таких как планшеты, класс.col-md-* - для устройств с экраном средних размеров, таких как персональные компьютеры и ноутбуки, а так же, класс.col-lg-* - для устройств с большим экраном.

Следующая таблица обобщает некоторые ключевые особенности новой системы сеток Bootstrap 3.

Особенности системы сеток Bootstrap 3 Крохотная ширина экрана
Смартфоны
(<768px)
Маленькая ширина экрана
Планшеты
(≥768px и <992)
Средняя ширина экрана
Ноутбуки
(≥992px и <1200px)
Большая ширина экрана
Компьютеры
(≥1200px)
Ширина контейнера
фиксированного
макета
(.container)
750px 970px 1170px
Ширина контейнера плавающего макета (.container-fluid) Равна ширине рабочей области окна браузера
Префикс класса .col-xs- .col-sm- .col-md- .col-lg-
Максимальная ширина колонки Bootstrap для контейнера с фиксированной шириной (.container) ~62px (750px / 12) ~81px (970px / 12) ~97px (1170px / 12)
Максимальная ширина колонки Bootstrap для контейнера с плавающей шириной (.container-fluid) Ширине рабочей области окна браузера / 12
Внутренние отступы для содержимого блоков, состоящих из колонок Bootstrap 15px с левой и правой стороны блока

Примечание:

Если вы применяете класс.col-sm-* к блоку, то это повлияет не только на разметку для устройств, с маленьким экраном (планшеты), но также на устройства со средним и большим экранами, если Вы не указали классы.col-md-* и.col-lg-* . Аналогично, класс.col-md-* будет влиять на разметку не только для устройств со средним экраном, но и на устройства с большим экраном, если класс.col-lg-* не указан.

Создание макета сайта с помощью системы сеток Twitter Bootstrap 3

С новой системой сеток Twitter Bootstrap 3 вы можете легко контролировать отображение макета сайта на различных устройствах, которые имеют различную ширину экрана.

В качестве примера рассмотрим процесс разработки макета сайта, состоящего из 3 блоков для всех устройств. Разрабатываемый макет на различных устройствах (смартфоны, планшеты, ноутбуки, персональные компьютеры) будет выглядеть по-разному. Например, на смартфонах эти блоки располагаются вертикально, а на большом экране персонального компьютера они размещаются горизонтально. То есть наш макет будет автоматически изменяться при достижении предельных значений ширины окна браузера.

Создание макета для устройства с большим экраном

Макет сайта для устройства с большим экраном (width >=1200px) состоит из трёх блоков, расположенных горизонтально, которые занимают всю ширину контейнера. Первый блок имеет ширину равную половине ширины контейнера (col-lg-6), второй блок занимает одну четвертую от ширины контейнера (col-lg-3), и третий блок тоже занимает одну четвертую от ширины контейнера (col-lg-3).

<div class ="container" > <div class ="row" > <div class ="col-lg-6" style => Блок №1div > <> Блок №2div > <div class ="col-lg-3" style => Блок №3div > div > div >

Настройка макета для устройства со средним экраном

Макет сайта для устройства со средним экраном (width >=992px и <1200) состоит из трёх блоков, два из которых расположены в одной строке и один в другой. Первый блок имеет ширину равную 8 колонкам Bootstrap (col-md-8), второй блок занимает оставшуюся ширину, т.е. 12 - 8 = 4 колонки (col-md-4). Так как третий блок должен располагаться с новой строки, то необходимо перед ним поместить дополнительный пустой блок с классом.clearfix , который не будет обтекать предыдущие блоки. Также необходимо иметь в виду, что это надо сделать только для экранов со средней шириной. Для этого необходимо к пустому блоку дополнительно добавить класс.visible-md-block . Ширина 3 блока равна ширине контейнера (col-md-12).

<div class ="container" > <div class ="row" > <"height:300px; background:green;" > Блок №1div > <"height:100px; background:orange;" > Блок №2div > <div class ="clearfix visible-md-block" >
<"height:150px; background:blue;" > Блок №3div > div > div >

Настройка макета для устройств с маленьким и крохотным размерами экранов

Аналогичным образом настроим макет для остальных устройств. Макет сайта для устройства с маленьким экраном (width >=768px и <992px) состоит из 3 блоков, первый блок занимает всю ширину контейнера, остальные 2 блока расположены под ним и занимают каждый ширину, равную 6 колонкам Bootstrap.

<div class ="container" > <div class ="row" > <div class ="col-lg-6 col-md-8" style ="height:300px; background:green;" > Блок №1div > <div class ="col-lg-3 col-md-4" style ="height:100px; background:orange;" > Блок №2div > <div class ="clearfix visible-md-block" >
<div class ="col-lg-3 col-md-12" style ="height:150px; background:blue;" > Блок №3div > div > div >

Макет сайта для устройства с крохотным экраном (width <768px) состоит из 3 блоков, которые расположены вертикально и занимают всю ширину контейнера.

<div class ="container" > <div class ="row" > <div class ="col-lg-6 col-md-8 col-sm-12 col-xs-12" style ="height:300px; background:green;" >
Блок №1div > <div class ="col-lg-3 col-md-4 col-sm-6 col-xs-12" style ="height:100px; background:orange;" >
Блок №2div > <div class ="clearfix visible-md-block" >
<div class ="col-lg-3 col-md-12 col-sm-6 col-xs-12" style ="height:150px; background:blue;" >
Блок №3div > div > div >

Примечание: Для устройств с очень маленькой шириной экрана (<768px) блоки по умолчанию всегда занимают всю ширину рабочей области экрана (col-xs-12) и располагаются один под другим как в нашем примере. Настраивать макет для таких устройств имеет смысл, если макет отличается от вышесказанного.

<div class ="container" > <div class ="row" > <div class ="col-lg-6 col-md-8 col-sm-12" style ="height:300px; background:green;" > Блок №1
div > <div class ="col-lg-3 col-md-4 col-sm-6" style ="height:100px; background:orange;" > Блок №2
div > <div class ="clearfix visible-md-block" >
<div class ="col-lg-3 col-md-12 col-sm-6" style ="height:150px; background:blue;" > Блок №3
div > div > div >

Адаптивные служебные классы Twitter Bootstrap для отображения и скрытия элементов

Twitter Bootstrap 3 содержит адаптивные служебные классы, которые позволяют включить отображение элементов только на определённых устройствах, размеры экранов которых попадают в соответствующий диапазон.

В Twitter Bootstrap 3.2 добавлена поддержка свойства CSS display для класса.visible . Новая возможность позволяет задавать видимость таким элементам, как inline , block и inline-block на различных экранах. Например, класс.visible-md-block включает видимость элемента, если он является блочным (block) и текущая ширина рабочей области окна браузера соответствует диапазону md (width >=992px и <1200px).

Описание
.visible-xs-* Делает элемент видимым только на устройствах с очень маленьким экраном, у которых ширина экрана меньше 768px. На других устройствах эти элементы не видимы.
.visible-sm-* Делает элемент видимым только на устройствах, имеющих экран шириной больше или равно 768px (т.е. ≥768px), и меньше чем 992px. На других устройствах эти элементы не видимы.
.visible-md-* Делает элемент видимым лишь на устройствах, имеющих экран шириной больше или равно 992px (т.е. ≥992px), и меньше 1200px. На других устройствах эти элементы не видимы.
.visible-lg-* Делает элемент видимым только на устройствах, имеющих экран шириной больше или равно 1200px (т.е. ≥1200px). На других устройствах эти элементы не видимы.

Примечание: Вы также можете совместно использовать эти классы для того, чтобы элементы были видны на нескольких устройствах. Например, вы можете применить класс.visible-xs-* и.visible-md-* на любой блок, чтобы сделать его видимым на устройствах и с очень маленьким и с средним экраном.

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

Совет: Вы также можете совместно использовать эти классы, чтобы блоки не были видны на нескольких устройствах. Например, вы можете применить классы.hidden-xs и.hidden-md к блоку на веб-странице, чтобы сделать этот блок невидимым на устройствах с очень маленьким и средним экраном.

<p class ="visible-xs-block" > Это параграф будет виден только на смартфонах. p > <p class ="visible-sm-block" > Это параграф будет виден только на планшетах. p > <p class ="visible-md-block" > Это параграф будет виден только на устройствах со средним размером экрана. p > <p class ="visible-lg-block" > Это параграф будет виден только на устройствах с большим экраном. p >

Подобно обычным адаптивным классам Twitter Bootstrap 3, можно использовать следующие служебные классы, чтобы отображать или скрывать определенные блоки при печати веб-страниц.

Bootstrap включает в себя мощную mobile-first блочная система макетов здания любых форм и размеров. Он основан на столбец 12 разметка и имеет несколько уровней, по одному для каждой медиа диапазона запроса . Вы можете использовать его с Sass примесей или наших предопределенных классов.

Как это работает

На высоком уровне, блочная система работает так:

Звучит хорошо? Отлично, давайте перейдем к видя все это в пример.

Пример быстрого запуска

Если вы используете Bootstrap скомпилированный CSS, в этом примере вы хотите, чтобы начать с.

One of three columns

One of three columns

One of three columns

One of three columns
One of three columns
One of three columns

Приведенный выше пример создает три равные ширины столбцов на малых, средних, больших, и очень больших устройств, используя наш . Эти столбцы по центру страницы с родителем.container .

Функционал разметки

При Bootstrap использует em s или rem s для определения большинства размеров, px s применяются для грид точки останова и ширины контейнера. Это происходит потому, что Ширина области просмотра в пикселях и не меняется с размером шрифта .

Смотри как аспекты Bootstrap блочная система работают на нескольких устройствах с таблица.

Сверхмалые
<544px
Небольшой
≥544px
Средний
≥768px по
Большие
≥992px
Очень большой
≥1200px
Поведение разметки Horizontal at all times Collapsed to start, horizontal above breakpoints
Ширина контейнера None (auto) 576px 720px 940px 1140px
Класс префикса .col-xs- .col-sm- .col-md- .col-lg- .col-xl-
# колонок 12
Промежуточная ширина 1.875rem / 30px (15px on each side of a column)
Вкладка Yes
Отступ Yes
Выравнивание столбцов Yes

Sass примеси

При использовании Bootstrap источник Sass файлов, у вас есть возможность использования Sass переменных и миксинов для создания пользовательских семантических, aдаптивный страница разметки. Наш использовать те же переменные и миксины представить целый набор готовых классов для быстрого aдаптивный разметки.

Переменные

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

$grid-columns : 12 ; $grid-gutter-width : 30px ; $grid-breakpoints : ( // Extra small screen / phone xs : 0 , // Small screen / phone sm : 544px , // Medium screen / tablet md : 768px , // Large screen / desktop lg : 992px , // Extra large screen / wide desktop xl : 1200px ); $container-max-widths : ( sm : 576px , md : 720px , lg : 940px , xl : 1140px );

Смешивания

Смешивания используются в сочетании с переменных разметкок, чтобы образовать семантические CSS для отдельных столбцов разметки.

// Создает оболочку для ряда столбцов @mixin make-row ($gutter : $grid-gutter-width ) { @if $enable-flex { display : flex ; flex-wrap : wrap ; } @else { @include clearfix (); } margin-left : ($gutter / -2 ); margin-right : ($gutter / -2 ); } // Делаем элемент грид-готов (применив все, но Ширина) @mixin make-col-ready ($size , $columns : $grid-columns , $gutter : $grid-gutter-width ) { position : relative ; min-height : 1px ; // Предотвращения коллапса padding-right : ($gutter / 2 ); padding-left : ($gutter / 2 ); // Предотвращения столбцов становится слишком узким, когда за меньший грид уровни // всегда установка Ширина: 100%;`. Это работает, потому что мы используем Флекс значения // позже, чтобы переопределить это начальная Ширина. @if $enable-flex { width : 100% ; } } @mixin make-col ($size , $columns : $grid-columns , $gutter : $grid-gutter-width ) { @if $enable-flex { flex : 0 0 percentage ($size / $columns ); // Добавить `Макс-ширина по обеспечению содержания в каждом столбце не задуть // Ширина столбца. Применяется для ie10+ и Firefox. Chrome и Safari // не нуждаются в этом. max-width : percentage ($size / $columns ); } @else { float : left ; width : percentage ($size / $columns ); } } // Получить фантазии с помощью взаимозачета или изменить порядок сортировки @mixin make-col-offset ($columns ) { margin-left : percentage (($columns / $grid-columns )); } @mixin make-col-push ($columns ) { left : percentage (($columns / $grid-columns )); } @mixin make-col-pull ($columns ) { right : percentage (($columns / $grid-columns )); }

Примеры использования

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

.container { max-width : 60em ; @include make-container (); } .row { @include make-row (); } .content-main { @include make-col-ready (); @media (max-width : 32em ) { @include make-col (6 ); } @media (min-width : 32 .1em ) { @include make-col (8 ); } } .content-secondary { @include make-col-ready (); @media (max-width : 32em ) { @include make-col (6 ); } @media (min-width : 32 .1em ) { @include make-col (4 ); } }
...
...

Предопределенные классы

Помимо семантической примеси, Bootstrap включает в себя широкий набор встроенных классов для быстрого создания грид колонн. Она включает в себя опции для аппаратной калибровки поля, переупорядочивание столбцов, и многое другое.

Пример: Сложенные по горизонтали

Используя единый набор.col-md-* грид классов, вы можете создать базовую блочная система что начинается сложены на мобильных устройствах и планшет устройств (экстра малый в небольшом диапазоне), прежде чем стать горизонтально на столе (средних) устройства. Место грид столбцов в любой.row .

col-md-1
col-md-1
col-md-1
col-md-1
col-md-1
col-md-1
col-md-1
col-md-1
col-md-1
col-md-1
col-md-1
col-md-1
col-md-8
col-md-4
col-md-4
col-md-4
col-md-4
col-md-6
col-md-6

Пример: Мобильные и настольные

Не хотите, чтобы ваши колонки просто сложить в небольших устройствах? Использовать дополнительные малые и средние устройства грид классов путем добавления.col-xs-* и.col-md-* в столбцах. Смотрите пример ниже для более полного представления о том, как все это работает.

Col-xs-12 .col-md-8

Col-xs-6 .col-md-4

Col-xs-6 .col-md-4

Col-xs-6 .col-md-4

Col-xs-6 .col-md-4

.col-xs-12 .col-md-8
.col-xs-6 .col-md-4
.col-xs-6 .col-md-4
.col-xs-6 .col-md-4
.col-xs-6 .col-md-4
.col-xs-6
.col-xs-6

Пример: Мобильные, планшеты, настольные

Постройте предыдущий пример, создав еще более динамичные и мощные макеты для планшета.col-sm-* класса.

Col-xs-12 .col-sm-6 .col-md-8

Col-xs-6 .col-md-4

Col-xs-6 .col-sm-4

Col-xs-6 .col-sm-4

Col-xs-6 .col-sm-4

.col-xs-12 .col-sm-6 .col-md-8
.col-xs-6 .col-md-4
.col-xs-6 .col-sm-4
.col-xs-6 .col-sm-4
.col-xs-6 .col-sm-4

Пример: Колонка wrapping

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

Col-xs-4
Since 9 + 4 = 13 > 12, this 4-column-wide div gets wrapped onto a new line as one contiguous unit.

Col-xs-6
Subsequent columns continue along the new line.

.col-xs-9
.col-xs-4
Since 9 + 4 = 13 > 12, this 4-column-wide div gets wrapped onto a new line as one contiguous unit.
.col-xs-6
Subsequent columns continue along the new line.

Пример: Адаптивный столбец сброса

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

Col-xs-6 .col-sm-3

Col-xs-6 .col-sm-3

Col-xs-6 .col-sm-3

Col-xs-6 .col-sm-3

.col-xs-6 .col-sm-3
.col-xs-6 .col-sm-3
.col-xs-6 .col-sm-3
.col-xs-6 .col-sm-3

В дополнение к очистке столбца на адаптивных точках, вам может понадобиться сброс offsets, pushes, или pulls . Смотрите это в действии на

Данный туториал предоставляет информацию о «грид» системе фреймворка Bootstrap 3.

Сеточная система Twitter Bootstrap предлагает быстрый и простой способ создавать разметку веб-страниц. Twitter Bootstrap 3 идет в комплекте с адаптивной мобильной плавающей системой сеток, которая структурируется вплоть до 12 колонок в зависимости от увеличения размера устройства или экрана. Давайте посмотрим, как она работает.

    Чтобы правильно выравнять и задать внутренний отступ сетки, блоки с классом.row нужно располагать внутри блоков с классом.container (фиксированная ширина) или.container-fluid (по ширине странице).

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

    Предопределенные классы сеток, например.row и.col-xs-4, позволяют быстро создавать разметку сеток. Также можно использовать миксины языка стилей less для увеличения количества типов семантической разметки.

    Колонки создают промежутки (gutters) (разрывы между содержанием колонок) через внутренний отступ (padding). Этот внутренний отступ (padding) смещается для первой и последней колонок из-за отрицательного значения внешнего отступа (margin) блоков с классом.row.

    Колонки сеток создаются путем указания требуемого числа из двенадцати доступных колонок. Например, для трех одинаковых колонок нужно использовать три контейнера с классом.col-xs-4.

    Классы сеток применяются к устройствам, в которых ширина больше или равна контрольным размерам, и переопределяют классы сеток, предназначенных для меньших устройств. Таким образом, применение любого класса.col-md- к элементу задаст стиль не только для средних, но и для больших устройств в том случае, если не используется класс.col-lg- .

Разметка

Twitter Bootstrap 3 включает предопределенные классы сеток, чтобы быстро верстать сеточную разметку для различных типов устройств, например мобильные телефоны, планшеты, компьютеры и т.п. Например, можно использовать класс.col-xs- , чтобы создавать сеточные колонки для очень маленьких устройств, как, например, мобильный телефон; таким же образом класс.col-sm- употребляется для маленьких устройств ~ планшетов, класс.col-md- для средних устройств ~ компьютеров и.col-lg- для больших экранов компьютеров. Ниже приводятся виды разметки системы сеток Bootstrap .

    Очень маленькие устройства ~ телефоны (<768px)

    Маленькие устройства ~ планшеты (≥768px)

    Средние устройства ~ компьютеры (≥992px)

    Большие устройства ~ компьютеры (≥1200px)

Настройки сеток

Пожалуйста, ознакомьтесь со следующей таблицей для более детальной информации:

Применение класса.col-sm- к элементу повлияет на стиль не только для маленьких устройств, например планшетов, но также для средних и больших устройств с шириной экрана больше или равной 768px (т.е. ≥768px), если не употребляются классы.col-md- и.col-lg- . Подобным образом, класс.col-md- повлияет не только на стиль для средних устройств, но также и для больших, если не употребляется класс.col-lg- .

Приведем примеры:

  1. Stacked-to-horizontal (Построение блоков столбцом, которое переходит в строчное на компьютерах). При помощи простого набора сеточных классов.col-md-*, можно создать базовую сеточную систему, при которой блоки располагаются столбцом на мобильных устройствах и планшетах (очень маленькие и маленькие устройства), но трансформируются в строку на компьютерах (средние устройства). Колонки сетки могут располагаться в любом блоке с классом.row.

    Пример кода:

    .col-md-1
    .col-md-1
    .col-md-1
    .col-md-1
    .col-md-1
    .col-md-1
    .col-md-1
    .col-md-1
    .col-md-1
    .col-md-1
    .col-md-1
    .col-md-1
    .col-md-8
    .col-md-4
    .col-md-4
    .col-md-4
    .col-md-4
    .col-md-6
    .col-md-6

  2. Fluid container (Подвижный контейнер) . Превратите любую сеточную разметку с фиксированной шириной в подвижную, изменив класс контейнера с.container на.container-fluid.

    ...

    Mobile and desktop (Мобильные устройства и компьютер) . Можно использовать классы сеток для очень маленьких и средних устройств, добавляя.col-xs-* .col-md-* в колонки.

    Пример кода:

    .col-xs-12 .col-md-8
    .col-xs-6 .col-md-4
    .col-xs-6 .col-md-4
    .col-xs-6 .col-md-4
    .col-xs-6 .col-md-4
    .col-xs-6
    .col-xs-6

    Mobile, tablet, desktops (Мобильный, планшет, компьютеры). Постройте еще более динамичную разметку для планшета при помощи класса.col-sm-* , используя предыдущий пример.

    Пример кода:

    .col-xs-12 .col-sm-6 .col-md-8
    .col-xs-6 .col-md-4
    .col-xs-6 .col-sm-4
    .col-xs-6 .col-sm-4
    .col-xs-6 .col-sm-4

    Column wrapping (Перенос колонок) . Если в одном блоке с классом.row находится больше 12 колонок, каждая группа дополнительных колонок будет переходить на новою строку как единое целое.

    Пример кода:

    .col-xs-9
    .col-xs-4
    Since 9 + 4 = 13 > 12, this 4-column-wide div gets wrapped onto a new line as one contiguous unit.
    .col-xs-6
    Subsequent columns continue along the new line.

    Responsive column resets (Исправление адаптивных колонок) . При использовании четырех доступных сеток, вы столкнетесь с проблемой, когда в определенных точках колонки выглядят неправильно из-за разницы высоты. Чтобы это исправить, используйте комбинацию блока с классом.clearfix и адаптивных служебных классов.

    Пример кода:

    .col-xs-6 .col-sm-3
    .col-xs-6 .col-sm-3
    .col-xs-6 .col-sm-3
    .col-xs-6 .col-sm-3

    Offsetting columns (Смещение колонок) . Двигайте колонки вправо при помощи классов.col-md-offset-* . Эти классы увеличивают отступ слева от блока на * количество колонок. Например, класс.col-md-offset-4 подвинет блок с классом.col-md-4 на четыре колонки.

    Пример кода:

    .col-md-4
    .col-md-4 .col-md-offset-4
    .col-md-3 .col-md-offset-3
    .col-md-3 .col-md-offset-3
    .col-md-6 .col-md-offset-3

    Nesting columns (Вложенные колонки) . Чтобы вложить содержание в основную сетку, добавьте новый блок с классом.row и набор колонок.col-sm-* внутри существующей колонки.col-sm-*. Вложенные блоки с классом row должны включать набор из 12 или менее колонок (не рекомендуется использовать все 12 доступных колонок).

    Пример кода:

    Level 1: .col-sm-9
    Level 2: .col-xs-8 .col-sm-6
    Level 2: .col-xs-4 .col-sm-6

    Column ordering (Порядок отображения колонок) . Порядок отображения встроенных сеточных колонок можно изменить при помощи модифицированных классов.col-md-push-* and .col-md-pull-*.

    Пример кода:

    .col-md-9 .col-md-push-3
    .col-md-3 .col-md-pull-9

Адаптивные служебные классы Bootstrap

    Используйте следующие адаптивные классы, чтобы управлять видимостью элементов на устройствах, чьи размеры экранов подпадают под определенный тип. В версии v3.2.0, классы.visible-*-* для каждого контрольного размера представляются в трех вариантах, по одному на каждое значение свойства CSS display: inline, block и inline-block.

    Подобным образом можно использовать служебные классы для скрытия, чтобы прятать элементы на определенных устройствах:

    Можно использовать следующие служебные классы, чтобы показать или убрать определенные элементы при печати страницы.

← Вернуться

Рубрики
×
Вступай в сообщество «vityazevo-pizz-and-roll.ru»!
ВКонтакте:
Я уже подписан на сообщество «vityazevo-pizz-and-roll.ru»