Bootstrap построен на динамической 12-колонной сетке, шаблонах и компонентах.
Bootstrap использует HTML-элементы и CSS-свойства, которые требуют HTML5 doctype. Включите его во все свои проекты.
- <!DOCTYPE html>
- <html lang="en">
- ...
- </html>
Основные компоненты Bootstrap включают в себя элементы отображения, оформления и стили ссылок. В частности, мы:
margin
элемента bodybackground-color: white;
для body
@baseFontFamily
, @baseFontSize
и @baseLineHeight
как основные@linkColor
и применяем подчеркивание только для селектора :hover
Эти стили вы можете найти в scaffolding.less.
В Bootstrap 2 мы применили старый сброс браузерных дефолтов с помощью Normalize.css, проект от Николаса Галлагера который также включает в себя HTML5 Boilerplate. Так как мы часто используем Normalize в нашем reset.less, мы удалили некоторые элементы специально для Bootstrap.
Основная сетка макета состоит из 12 колонок, обеспечивая ширину контейнеров в 940px без активных динамических особенностей. При добавлении динамического файла CSS сетка может растягиваться в ширину от 724px до 1170px, в зависимости от вашего монитора. На дисплеях, ширина которых менее 767px, колонки становятся плавающими и выстраиваются вертикально.
Для простого макета в две колонки создайте класс .row
и добавьте соответствующее число колонок .span*
. Так как это сетка в 12 колонок, каждый диапазон из двух .span*
насчитывает 12 колонок и всякий раз будет добавлять 12 колонок в каждую строку (или то количество колонок, которое задано в родительском элементе).
- <div class="row">
- <div class="span4">...</div>
- <div class="span8">...</div>
- </div>
В данном примере у нас имеются .span4
и .span8
, созданные и 12 колонок и одной сплошной строки.
Подвиньте колонки вправо, используя классы .offset*
. Каждый класс увеличивает левый отступ колонки на размер ее самой. Например, .offset4
перемещает .span4
на четыре колонки.
- <div class="row">
- <div class="span4">...</div>
- <div class="span3 offset2">...</div>
- </div>
Чтобы сверстать контент, используя сетку по умолчанию, добавьте новый класс .row
и установите расстояние .span*
для колонок внутри существующей .span*
колонки. Сверстанные строки должны состоять из набора колонок, который добавлен к количеству родительских колонок.
- <div class="row">
- <div class="span9">
- Level 1 column
- <div class="row">
- <div class="span6">Level 2</div>
- <div class="span3">Level 2</div>
- </div>
- </div>
- </div>
В плавающей сетке для обозначения ширины колонок вместо пикселов используются проценты. Плавающая сетка имеет те же динамические возможности, что и фиксированная, обеспечивая нужные пропорции для разрешений экранов разных устройств.
Делает любую строку плавающей с помощью изменения .row
на .row-fluid
. Колонки останутся прежними, что позволяет с легкостью переключаться между фиксированным и плавающим шаблоном дизайна.
- <div class="row-fluid">
- <div class="span4">...</div>
- <div class="span8">...</div>
- </div>
Устанавливается таким же образом, как и в фиксированной сетке: добавьте класс .offset*
в любую колонку, чтобы при этом переместить несколько колонок.
- <div class="row-fluid">
- <div class="span4">...</div>
- <div class="span4 offset2">...</div>
- </div>
Верстка плавающей сетки немного отличается: количество верстаемых колонок не должно соответствовать количеству родительских колонок. Вместо этого каждый уровень сверстанных колонок «сбрасывается», потому что каждая строка принимает 100% свойств родительской колонки.
- <div class="row-fluid">
- <div class="span12">
- Level 1 of column
- <div class="row-fluid">
- <div class="span6">Level 2</div>
- <div class="span6">Level 2</div>
- </div>
- </div>
- </div>
Основной фиксированный по ширине макет (опционально динамический) с единственным требованием — <div class="container">
.
- <body>
- <div class="container">
- ...
- </div>
- </body>
Создайте плавающую страницу с двумя колонками с помощью <div class="container-fluid">
. Идеально подходит для приложений и документации.
- <div class="container-fluid">
- <div class="row-fluid">
- <div class="span2">
- <!--Sidebar content-->
- </div>
- <div class="span10">
- <!--Body content-->
- </div>
- </div>
- </div>
Включите в вашем проекте адаптивный CSS, добавляя соответствующие мета теги и дополнительные таблицы стилей в <head>
вашего документа. Если у вас компилированный Bootstrap, загруженный с нашей страницы, то вам всего лишь нужно добавить мета тег.
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
- <link href="assets/css/bootstrap-responsive.css" rel="stylesheet">
Внимание! По умолчанию в Bootstrap не включены адаптивные возможности, поскольку это не везде требуется. Вместо того, чтобы разработчики каждый раз отключали этот функционал, логичнее будет дать им возможность включать его при необходимости.
Медиа запросы изменяют обычный CSS, основанный на большом количестве условий и соотношений, размеров, типов дисплея и пр., но чаще всего — на фокусе в пределах min-width
и max-width
.
Используйте адаптивные возможности Медиа-запросов только для создания мобильной версии сайта. Для крупных проектов мы рекомендуем создавать отдельную версию дизайна и сайта.
Bootstrap поддерживает несколько медиа-запросов в одном файле, что позволяет работать Вашему проекту на различных устройствах и с разными разрешениями экранов. Сюда относятся следующие устройства:
Категория | Ширина макета | Ширина колонок | Отступ между колонками |
---|---|---|---|
Большой дисплей | 1200px и более | 70px | 30px |
По умолчанию | 980px и более | 60px | 20px |
Портретные планшеты | 768px и более | 42px | 20px |
Планшеты | 767px и менее | Плавающие колонки, без фиксированной ширины | |
Смартфоны | 480px и менее | Плавающие колонки, без фиксированной ширины |
- /* Large desktop */
- @media (min-width: 1200px) { ... }
- /* Portrait tablet to landscape and desktop */
- @media (min-width: 768px) and (max-width: 979px) { ... }
- /* Landscape phone to portrait tablet */
- @media (max-width: 767px) { ... }
- /* Landscape phones and down */
- @media (max-width: 480px) { ... }
Показанная здесь таблица классов обеспечивает динамику для различных устройств и их работу в связке с сеткой макета и медиа-запросами (разделено по устройствам). Данные классы вы можете найти в responsive.less
.
Класс | Телефоны 767px и менее | Планшеты 979px to 768px | Ноутбуки и десктопы По умолчанию |
---|---|---|---|
.visible-phone |
Виден | Скрыт | Скрыт |
.visible-tablet |
Скрыт | Виден | Скрыт |
.visible-desktop |
Скрыт | Скрыт | Виден |
.hidden-phone |
Скрыт | Виден | Виден |
.hidden-tablet |
Виден | Скрыт | Виден |
.hidden-desktop |
Виден | Виден | Скрыт |
Используйте ограниченный функционал и избегайте создания совершенно различных версий на одном сайте. Вместо этого используйте данные возможности для создания разных презентаций на разных устройствах.
Измените размер окна в вашем браузере или запустите сайт на других устройствах для тестирования адаптивные классов.
Зеленые отметки обозначают, что класс виден на данном дисплее.
В этом случае зеленые отметки обозначают, что класс не отображается на данном дисплее.