MyTetra Share
Делитесь знаниями!
Сеточная система Bootstrap 3
25.03.2019
20:50
Автор: Ryan DeWitt
Текстовые метки: bootstrap, css
Раздел: Компьютер - Программирование - HTML и CSS - Bootstrap

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

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

  1. Чтобы правильно выравнять и задать внутренний отступ сетки, блоки с классом .row нужно располагать внутри блоков с классом .container (фиксированная ширина) или .container-fluid (по ширине странице).
  2. Блоки с классом .row необходимо использовать для создания горизонтальных групп колонок.
  3. Содержание нужно располагать внутри колонок и только колонки могут быть непосредственными потомками блоков с классом .row.
  4. Предопределенные классы сеток, например .row и .col-xs-4, позволяют быстро создавать разметку сеток. Также можно использовать миксины языка стилей less для увеличения количества типов семантической разметки.
  5. Колонки создают промежутки (gutters) (разрывы между содержанием колонок) через внутренний отступ (padding). Этот внутренний отступ (padding) смещается для первой и последней колонок из-за отрицательного значения внешнего отступа (margin) блоков с классом .row.
  6. Колонки сеток создаются путем указания требуемого числа из двенадцати доступных колонок. Например, для трех одинаковых колонок нужно использовать три контейнера с классом .col-xs-4.
  7. Классы сеток применяются к устройствам, в которых ширина больше или равна контрольным размерам, и переопределяют классы сеток, предназначенных для меньших устройств. Таким образом, применение любого класса .col-md- к элементу задаст стиль не только для средних, но и для больших устройств в том случае, если не используется класс .col-lg- .

Разметка

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

  1. Очень маленькие устройства ~ телефоны (<768px)
  2. Маленькие устройства ~ планшеты (≥768px)
  3. Средние устройства ~ компьютеры (≥992px)
  4. Большие устройства ~ компьютеры (≥1200px)

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

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



Разметка сеточной системы Bootstrap 3

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

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

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

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

Максимальная ширина контейнера

Нет (авто)

750px

970px

1170px

Префикс класса

.col-xs-

.col-sm-

.col-md-

.col-lg-

Максимальная ширина колонки

Авто

~62px

~81px

~97px

Ширина промежутка (Gutter)

15px с каждой стороны колонки (например 30px)


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

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

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


  2. Пример кода:

    <div class="row">

    <div class="col-md-1">.col-md-1</div>

    <div class="col-md-1">.col-md-1</div>

    <div class="col-md-1">.col-md-1</div>

    <div class="col-md-1">.col-md-1</div>

    <div class="col-md-1">.col-md-1</div>

    <div class="col-md-1">.col-md-1</div>

    <div class="col-md-1">.col-md-1</div>

    <div class="col-md-1">.col-md-1</div>

    <div class="col-md-1">.col-md-1</div>

    <div class="col-md-1">.col-md-1</div>

    <div class="col-md-1">.col-md-1</div>

    <div class="col-md-1">.col-md-1</div>

    </div>

    <div class="row">

    <div class="col-md-8">.col-md-8</div>

    <div class="col-md-4">.col-md-4</div>

    </div>

    <div class="row">

    <div class="col-md-4">.col-md-4</div>

    <div class="col-md-4">.col-md-4</div>

    <div class="col-md-4">.col-md-4</div>

    </div>

    <div class="row">

    <div class="col-md-6">.col-md-6</div>

    <div class="col-md-6">.col-md-6</div>

    </div>

  3. Fluid container (Подвижный контейнер). Превратите любую сеточную разметку с фиксированной шириной в подвижную, изменив класс контейнера с .container на .container-fluid.
  4. <div class="container-fluid">

    <div class="row">

    ...

    </div>

    </div>

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


  6. Пример кода:

    <!-- Stack the columns on mobile by making one full-width and the other half-width -->

    <div class="row">

    <div class="col-xs-12 col-md-8">.col-xs-12 .col-md-8</div>

    <div class="col-xs-6 col-md-4">.col-xs-6 .col-md-4</div>

    </div>

    <!-- Columns start at 50% wide on mobile and bump up to 33.3% wide on desktop -->

    <div class="row">

    <div class="col-xs-6 col-md-4">.col-xs-6 .col-md-4</div>

    <div class="col-xs-6 col-md-4">.col-xs-6 .col-md-4</div>

    <div class="col-xs-6 col-md-4">.col-xs-6 .col-md-4</div>

    </div>

    <!-- Columns are always 50% wide, on mobile and desktop -->

    <div class="row">

    <div class="col-xs-6">.col-xs-6</div>

    <div class="col-xs-6">.col-xs-6</div>

    </div>

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


  8. Пример кода:

    <div class="row">

    <div class="col-xs-12 col-sm-6 col-md-8">.col-xs-12 .col-sm-6 .col-md-8</div>

    <div class="col-xs-6 col-md-4">.col-xs-6 .col-md-4</div>

    </div>

    <div class="row">

    <div class="col-xs-6 col-sm-4">.col-xs-6 .col-sm-4</div>

    <div class="col-xs-6 col-sm-4">.col-xs-6 .col-sm-4</div>

    <!-- Optional: clear the XS cols if their content doesn't match in height -->

    <div class="clearfix visible-xs-block"></div>

    <div class="col-xs-6 col-sm-4">.col-xs-6 .col-sm-4</div>

    </div>

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


  10. Пример кода:

    <div class="row">

    <div class="col-xs-9">.col-xs-9</div>

    <div class="col-xs-4">.col-xs-4<br>Since 9 + 4 = 13 &gt; 12, this 4-column-wide div gets wrapped onto a new line as one contiguous unit.</div>

    <div class="col-xs-6">.col-xs-6<br>Subsequent columns continue along the new line.</div>

    </div>

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


  12. Пример кода:

    <div class="row">

    <div class="col-xs-6 col-sm-3">.col-xs-6 .col-sm-3</div>

    <div class="col-xs-6 col-sm-3">.col-xs-6 .col-sm-3</div>


    <!-- Add the extra clearfix for only the required viewport -->

    <div class="clearfix visible-xs-block"></div>

    <div class="col-xs-6 col-sm-3">.col-xs-6 .col-sm-3</div>

    <div class="col-xs-6 col-sm-3">.col-xs-6 .col-sm-3</div>

    </div>

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


  14. Пример кода:

    <div class="row">

    <div class="col-md-4">.col-md-4</div>

    <div class="col-md-4 col-md-offset-4">.col-md-4 .col-md-offset-4</div>

    </div>

    <div class="row">

    <div class="col-md-3 col-md-offset-3">.col-md-3 .col-md-offset-3</div>

    <div class="col-md-3 col-md-offset-3">.col-md-3 .col-md-offset-3</div>

    </div>

    <div class="row">

    <div class="col-md-6 col-md-offset-3">.col-md-6 .col-md-offset-3</div>

    </div>


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


  16. Пример кода:

    <div class="row">

    <div class="col-sm-9">

    Level 1: .col-sm-9

    <div class="row">

    <div class="col-xs-8 col-sm-6">

    Level 2: .col-xs-8 .col-sm-6

    </div>

    <div class="col-xs-4 col-sm-6">

    Level 2: .col-xs-4 .col-sm-6

    </div>

    </div>

    </div>

    </div>

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



Пример кода:

<div class="row">

<div class="col-md-9 col-md-push-3">.col-md-9 .col-md-push-3</div>

<div class="col-md-3 col-md-pull-9">.col-md-3 .col-md-pull-9</div>

</div>


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

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


  2. Класс

    Описание

    .visible-xs-*

    Делает элемент видимым только для очень маленьких устройств с шириной экрана меньше 768px. Скрыт для других.

    .visible-sm-*

    Делает элемент видимым только для маленьких устройств с шириной экрана больше или равной 768px (т.е. ≥768px), но меньше 992px. Скрыт для других.

    .visible-md-*

    Делает элемент видимым только для средних устройств с шириной экрана больше или равной 992px (т.е. ≥992px), но меньше 1200px. Скрыт для других.

    .visible-lg-*

    Делает элемент видимым только для больших устройств с шириной экрана больше или равной 1200px (т.е. ≥1200px). Скрыт для других.


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


  4. Класс

    Описание

    .hidden-xs

    Делает элемент невидимым только для очень маленьких устройств с шириной экрана меньше 768px. Видим для других.

    .hidden-sm

    Делает элемент невидимым только для маленьких устройств с шириной экрана больше или равной 768px (т.е. ≥768px), но меньше 992px. Видимый для других.

    .hidden-md

    Делает элемент невидимым только для средних устройств с шириной экрана больше или равной 992px (т.е. ≥992px), но меньше 1200px. Видимый для других.

    .hidden-lg

    Делает элемент невидимым только для больших устройств с шириной экрана больше или равной 1200px (т.е. ≥1200px). Видимый для других.


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



.visible-print-block

Делает невидимыми блочные элементы (block) при предпросмотре страницы в браузере для печати.

.visible-print-inline

Делает невидимыми строчные элементы (inline) при предпросмотре страницы в браузере для печати.

.visible-print-inline-block

Делает невидимыми строчно-блочные элементы (inline-block) при предпросмотре страницы в браузере для печати.

.hidden-print

Скрывает элементы, которые видимы в браузере, при печати.



 
MyTetra Share v.0.52
Яндекс индекс цитирования