Bootstrap построен на адаптивной сетке из 12 столбцов. Мы также включили макеты с фиксированной и гибкой шириной на основе этой системы.
Bootstrap использует элементы HTML и свойства CSS, которые требуют использования типа документа HTML5. Не забудьте включить его в начале каждой страницы Bootstrap в вашем проекте.
- <!ДОКТИП HTML>
- <html язык = "ru" >
- ...
- </html>
В файле scaffolding.less мы устанавливаем базовые глобальные стили отображения, типографики и ссылок. В частности, мы:
background-color: white;
наbody
@baseFontFamily
, @baseFontSize
и @baseLineHeight
в качестве нашей типографской основы@linkColor
и применяйте подчеркивание ссылки только на:hover
Начиная с Bootstrap 2, традиционный сброс CSS эволюционировал, чтобы использовать элементы из Normalize.css , проекта Николаса Галлахера , который также поддерживает HTML5 Boilerplate .
Новый сброс все еще можно найти в reset.less , но многие элементы удалены для краткости и точности.
Система сеток по умолчанию, представленная в Bootstrap, использует 12 столбцов с шириной 724 пикселей, 940 пикселей (по умолчанию без включенного отзывчивого CSS) и 1170 пикселей. Ниже окна просмотра 767 пикселей столбцы становятся плавными и складываются вертикально.
- <div класс = "строка" >
- <div class = "span4" > ... </div>
- <div class = "span8" > ... </div>
- </div>
Как показано здесь, базовый макет может быть создан с двумя «столбцами», каждый из которых охватывает несколько из 12 основных столбцов, которые мы определили как часть нашей системы сетки.
- <div класс = "строка" >
- <div class = "span4" > ... </div>
- <div class = "span4 offset4" > ... </div>
- </div>
Благодаря статической (неизменяемой) сетке в Bootstrap вложение очень просто. Чтобы вложить содержимое, просто добавьте новый .row
и набор .span*
столбцов в существующий .span*
столбец.
Вложенные строки должны включать набор столбцов, которые в сумме равны количеству столбцов его родителя. Например, два вложенных .span3
столбца должны быть размещены в файле .span6
.
- <div класс = "строка" >
- <div класс = "span6" >
- Столбец уровня 1
- <div класс = "строка" >
- <div class = "span3" > Уровень 2 </div>
- <div class = "span3" > Уровень 2 </div>
- </div>
- </div>
- </div>
Система гибкой сетки использует проценты для ширины столбцов вместо фиксированных пикселей. Он также имеет те же адаптивные варианты, что и наша система с фиксированной сеткой, обеспечивая правильные пропорции для ключевых разрешений экрана и устройств.
Сделайте любую строку плавной, просто изменив .row
ее на .row-fluid
. Столбцы остаются прежними, что упрощает переключение между фиксированным и плавным макетами.
- <div класс = "жидкость строки" >
- <div class = "span4" > ... </div>
- <div class = "span8" > ... </div>
- </div>
Вложение с плавающими сетками немного отличается: количество вложенных столбцов не обязательно должно совпадать с родительским. Вместо этого ваши столбцы сбрасываются на каждом уровне, потому что каждая строка занимает 100% родительского столбца.
- <div класс = "жидкость строки" >
- <div класс = "span12" >
- Уровень 1 столбца
- <div класс = "жидкость строки" >
- <div class = "span6" > Уровень 2 </div>
- <div class = "span6" > Уровень 2 </div>
- </div>
- </div>
- </div>
Переменная | Значение по умолчанию | Описание |
---|---|---|
@gridColumns |
12 | Число столбцов |
@gridColumnWidth |
60 пикселей | Ширина каждой колонки |
@gridGutterWidth |
20 пикселей | Негативное пространство между столбцами |
В Bootstrap встроено несколько переменных для настройки системы сетки по умолчанию 940px, описанной выше. Все переменные сетки хранятся в файле variable.less.
Изменение сетки означает изменение трех @grid*
переменных и перекомпиляцию Bootstrap. Измените переменные сетки в variable.less и используйте один из четырех задокументированных способов перекомпиляции . Если вы добавляете больше столбцов, обязательно добавьте CSS для столбцов в grid.less.
Настройка сетки работает только на уровне по умолчанию, сетке 940 пикселей. Чтобы сохранить отзывчивые аспекты Bootstrap, вам также придется настроить сетки в responsive.less.
Стандартный и простой центрированный макет шириной 940 пикселей практически для любого веб-сайта или страницы, предоставляемый одним файлом <div class="container">
.
- <тело>
- <div класс = "контейнер" >
- ...
- </div>
- </тело>
<div class="container-fluid">
дает гибкую структуру страницы, минимальную и максимальную ширину и левую боковую панель. Это отлично подходит для приложений и документов.
- <div class = "контейнер-жидкость" >
- <div класс = "жидкость строки" >
- <div класс = "span2" >
- <!--Содержимое боковой панели-->
- </div>
- <div класс = "span10" >
- <!--Содержимое тела-->
- </div>
- </div>
- </div>
Медиа-запросы позволяют создавать пользовательские CSS на основе ряда условий — соотношений, ширины, типа отображения и т. д. — но обычно фокусируются вокруг min-width
и max-width
.
Используйте медиа-запросы ответственно и только в качестве начала для вашей мобильной аудитории. Для более крупных проектов рассмотрите выделенные базы кода, а не слои медиа-запросов.
Bootstrap поддерживает несколько медиа-запросов в одном файле, чтобы сделать ваши проекты более подходящими для разных устройств и разрешений экрана. Вот что включено:
Этикетка | Ширина макета | Ширина колонки | Ширина желоба |
---|---|---|---|
Смартфоны | 480px и ниже | Гибкие столбцы, без фиксированной ширины | |
Смартфоны в планшеты | 767px и ниже | Гибкие столбцы, без фиксированной ширины | |
Портретные планшеты | 768px и выше | 42px | 20 пикселей |
По умолчанию | 980px и выше | 60 пикселей | 20 пикселей |
Большой дисплей | 1200px и выше | 70 пикселей | 30 пикселей |
Чтобы обеспечить правильное отображение адаптивных страниц на устройствах, включите метатег области просмотра.
- <meta name = "viewport" content = "width=device-width, initial-scale=1.0" >
Bootstrap не включает эти медиа-запросы автоматически, но понять и добавить их очень просто и требует минимальной настройки. У вас есть несколько вариантов включения адаптивных функций Bootstrap:
Почему бы просто не включить его? По правде говоря, не все должно быть отзывчивым. Вместо того, чтобы побуждать разработчиков удалять эту функцию, мы считаем, что лучше включить ее.
- /* Телефоны в горизонтальном положении и вниз */
- @media ( максимальная ширина : 480 пикселей ) { ... }
- /* Пейзажный телефон на портретный планшет */
- @media ( максимальная ширина : 767 пикселей ) { ... }
- /* Планшет с портретной ориентацией на альбомную и рабочий стол */
- @media ( минимальная ширина : 768 пикселей ) и ( максимальная ширина : 979 пикселей ) { ... }
- /* Большой рабочий стол */
- @media ( минимальная ширина : 1200 пикселей ) { ... }
Для более быстрой разработки с учетом мобильных устройств используйте эти основные служебные классы для отображения и скрытия контента на разных устройствах.
Используйте на ограниченной основе и избегайте создания совершенно разных версий одного и того же сайта. Вместо этого используйте их, чтобы дополнить презентацию каждого устройства.
Например, вы можете отображать <select>
элемент для навигации в мобильных макетах, но не на планшетах или компьютерах.
Здесь показана таблица классов, которые мы поддерживаем, и их влияние на данный макет медиазапроса (отмечено устройством). Их можно найти в responsive.less
.
Учебный класс | Телефоны480px и ниже | Таблетки767px и ниже | Настольные компьютеры768px и выше |
---|---|---|---|
.visible-phone |
Видимый | Скрытый | Скрытый |
.visible-tablet |
Скрытый | Видимый | Скрытый |
.visible-desktop |
Скрытый | Скрытый | Видимый |
.hidden-phone |
Скрытый | Видимый | Видимый |
.hidden-tablet |
Видимый | Скрытый | Видимый |
.hidden-desktop |
Видимый | Видимый | Скрытый |
Измените размер вашего браузера или загрузите его на разных устройствах, чтобы протестировать вышеуказанные классы.
Зеленые галочки означают, что класс виден в вашем текущем окне просмотра.
Здесь зеленые галочки указывают, что класс скрыт в вашем текущем окне просмотра.