• Примеры простых шаблонов на bootstrap. Bootstrap на русском: Шаблон · Примеры и практики от начинающих до профессионалов · По Русски

    » мы познакомились с фреймворком, разобрали его преимущества, вкратце рассмотрели его так называемую сетку, теперь пришло время на практике разобрать, как пользоваться Bootstrap.

    Скачать Bootstrap можно с официального сайта getbootstrap.com . На главной странице жмем на кнопку «Download Bootstrap ».

    После клика нас переносит на страницу, на которой предлагается несколько видов скачивания. В рамках данной статьи мы рассмотрим обычное скачивание полной версии фреймворка.

    После скачивания и распаковки архива мы получаем три папки:

    • CSS - папка со стилями
    • JS - папка с js скриптами
    • FONTS - папка с иконочными шрифтами

    Это и есть весь фреймворк. Для дальнейшей работы с Bootstrap я создам папку с одноименным названием bootstrap , в папке создам один пустой файл index.html и буду наполнять папку и файл попутно с разбором фреймворка в данной статье, а в конце поста дам ссылку, чтобы Вы могли посмотреть результат. Если будите повторять за мной, то поймете, что работать с фреймворком действительно легко.

    Из скаченного фреймворка нам потребуется папка fonts полностью, один файл стилей из папки css с названием bootstrap.css или bootstrap.min.css и аналогично один скрипт из папки js с названием bootstrap.js или bootstrap.min.js .

    Отличие файлов с «.min.» от обычных в том, что файлы с «.min.» оптимизированные, то есть код написан в одну строку без переносов строк и пробелов, поэтому они весят меньше обычных, а содержимое файлов абсолютно одинаковое.

    Теперь я создам в своей папке bootstrap папку css , помещу в нее файл bootstrap.min.css и создам папку js , в которую положу bootstrap.min.js . Дополнительно в папке css создам пока пустой файл style.css для добавления собственных стилей.

    Нужные файлы фреймворка перенесены, и теперь будем работать только с файлом index.html . Чтобы не писать код самостоятельно, обратимся к документации, на странице скачивания официального сайта ниже есть уже готовый HTML-скелет документа, копируем его и вставляем в наш индексный файл.

    В скелете уже подключаются наш файл стилей, js скрипт и библиотека jQuery , но если вы делаете не на «бутстраповском » шаблоне, а на каком-то своем, то нужно между тегами подключить файл стилей bootstrap.min.css , а после него созданный style.css .

    Затем перед закрывающим тегом сначала подключаем библиотеку jQuery .

    А после библиотеки подключаем js скрипт.

    В общем, HTML-скелет документа получается вот такой.

    Bootstrap

    Подготовительный процесс закончен, Bootstrap подключен, можно идти дальше и заняться наполнением нашей WEB-страницы компонентами фреймворка.

    Как пользоваться документацией

    Документация у фреймворка очень хорошая, что делает его простым в использовании. В главном меню официального сайта несколько разделов: «Getting started », «CSS », «Components », «JavaScript » и «Custimize », на странице каждого раздела в правой колонке находятся названия разных компонентов, кликнув по которым показывается их описание и варианты использования в виде готового кода.

    Если сложности с английским языком, то в сети есть несколько ресурсов с переведенной документацией, вот адрес одного из таких сайтов www.oneskyapp.com/ru/docs/bootstrap . Также можно воспользоваться каким-нибудь переводчиком для браузера, перевод будет, конечно, кривоватый, но суть написанного будет ясна. В общем, просто нужно читать документацию, брать примеры кода и практиковаться.

    Работа с сеткой Bootstrap

    Как я говорил в прошлой статье, сетка работает по принципу таблицы, включая в себя ряды .row и колонки .col , колонок может быть максимум двенадцать. К классу.col добавляются префиксы (lg , md , sm , xs), которые указывают ширину данного столбца на конкретном разрешении экрана.

    Оборачиваются ряды со столбцами в блок с классом .container или классом.container-fluid . Различие между ними в том, что у класса.container максимальная ширина 1170 пикселей, а у класса.container-fluid — ширина не ограничена, то есть на всю ширину экрана, даже если разрешение экрана очень большое. Полную информацию о сетке Bootstrap смотрите в документации раздела «CSS ».

    При помощи сетки фреймворка сделаем классическую разметку нашей страницы (шапка, контент, боковая колонка и подвал), для этого создадим три ряда и четыре колонки, получается вот такой код.

    HEADER CONTENT SIDEBAR FOOTER

    Для разделения блоков я прописал два дополнительных класса: .block , .block2 и добавил в них по паре правил в созданном файле style.css .

    Block{ background: #eee; border: 1px solid #000; } .block2{ background: #ccc; border: 1px solid #000; }

    Добавим иконочный шрифт к нашим заголовкам. В разделе «Components » выбираем понравившиеся иконки, копируем текст под изображением, этот текст является классом. Создаем внутри тега заголовка тег и вставляем скопированный класс.

    HEADER

    Теперь не мешало добавить какое-то меню. Для этого в разделе «Components » переходим в «Navbar », выбираем понравившееся меню, копируем код и после открывающего тега , вставляем.

    Осталось заполнить «conten t» и «sidebar ». Все делаем по той же схеме: выбираем компонент в документации, читаем описание, копируем и вставляем в нужное место. Я добавлю форму и кнопку, кликнув по которой будет вызываться модальное окно с таблицей.

    Вот так просто, всего за 5 минут, мы набросали простейший макет страницы, адаптивный под все устройства, при этом практически не писали код самостоятельно. Перейдите по ссылке и посмотрите полученный результат.

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

    Bootstrap построен на динамической 12-колонной сетке. Мы так же включили функционал фиксированной и плавающей ширины колонок в шаблоне.

    Основные стили в CSS сброс браузерных дефолтов, типография, и ссылки Необходим HTML5 doctype

    Bootstrap использует HTML-элементы и CSS-свойства для которых необходимо использовать HTML5 doctype. Убедитесь в использовании HTML5 doctype на каждой за"Bootstrap"енной странице Вашего проекта.

    ...

    Типография и ссылки

    В файле scaffolding.less , мы установили основные стили, типографию (стили и размеры шрифтов), и стили ссылок. Конкретнее:

    • Удалили отступ (margin) елемента body
    • Установили background-color: white; для body
    • Используем @baseFontFamily , @baseFontSize , и @baseLineHeight атрибуты как основные для типографии
    • Выставили основной цвет ссылки через @linkColor и применили подчеркивание только для селектора:hover
    Сбрасывание браузерных дефолтов через Normalize

    В Bootstrap 2, мы применили ставший обыденным сброс браузерных дефолтов с помощью Normalize.css , проект от Nicolas Gallagher (Николаса Галлагера) так же мы включили все плюсы от HTML5 Boilerplate .

    Сброс дефолтных стилей находится в reset.less , мы многое изменили для большей совместимости.

    Сетка дизайна динамическая 12-колонная сетка

    Основная сетка макета представлена как часть Bootstrap"а в 940px-ширины в 12-колонок .

    Так же представленны 4 динамических варианта для различных девайсов и разрешений экрана: телефон, наладонник портретная, наладонник горизонтальная он же маленький монитор, и большой широкоэкранный монитор.

    ... ...

    Из примера видно, основная сетка макета может быть создана с помощью двух "columns", в итоге число "spanning" или span(x)"ов равняется 12 основным колонкам которые определенны как часть основной сетки.

    Отключение колонок с помощью offset(x) класса

    ... ...

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

    Со статическими колонками (не плавающими) в Bootstrap, легко можно создать вложенные колонки. Для вложения одной группы колон в другую колонку, просто добавьте новую.row (строку) и включите в неё .span(x) колонки.

    Пример

    Вложенные колонки не могут превышать размер родительской колонны т.е. в.span5 можно вложить пять.span1 или два.span2 и один.span1 . Смотрите пример ниже.

    Level 1 of column (.span6)

    Level 2 (.span3)

    Level 2 (.span3)

    Level 1 of column Level 2 Level 2

    Плавающая сетка макета 12 динамических колонок, размер колонок основан на процентном заполнении Плавающие колонки Проценты, не пиксели

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

    Плавающие строки (.row)

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

    Пример разметки ... ... Вложение в плавающую сетку

    Вложение в плавающую сетку немного отличается: номер и сумма span(x)"ов не должна удовлетворять размер родительской колонки. Так как вложенные колонны на каждом уровне вложения занимают 100% родительской колонки.

    Level 1 of column Level 2 Level 2

    Пользовательские настройки Переменные в LESS

    Несколько переменных описанных выше и встроенных в Bootstrap позволят Вам с легкостью изменить настройки сетки, по умолчанию (940px). Все переменные связанные с сеткой шаблона находятся в variables.less.

    Как изменить?

    Изменение сетки шаблона связанны с изменением дерева переменных @grid* и должны быть перекомпилированны в Bootstrap.Изменяйте переменные сетки шаблона в variables.less и используйте четыре способа перекомпилировать less . Если Вы добавляете колонки в сетку шаблона, убедитесь что добавили CSS для новых колонок в grid.less.

    Изменение параметров динамики

    Изменение сетки макета работает только на дефолтном уровне, когда ширина составляет 940px. Для изменений в динамической сетке Bootstrap"а, Вам так же необходимо изменить сетку шаблона в responsive.less.

    Макеты Основные шаблоны для создания веб-сайтов Фиксированный

    Основной и простой макет с шириной в 940px, отцентрованное расположение элементов для простого сайта с основным родительским .

    ...

    Плавающий

    предоставляет плавающую структуру страницы, min- и max-widths, с левым сайдбаром для меню. Этот макет отлично подходит для текстов и приложений.

    Динамический дизайн "Media-queries" (Медиа-запросы) для различных устройств и размеров экрана Как использовать?

    Медиа-запросы позволяют изменять CSS "на лету" основываясь на условиях—отношений, ширины, типа дисплея, и т.д.—но обычно используется для изменения min-width и max-width .

    • Изменяется ширина колонок в сетке шаблона
    • Фиксированные элементы вместо плавающих при необходимости
    • Измение размера заголовков и основного шрифта для разных устройств

    Используйте динамические возможности Медиа-запросов, только для создания мобильной версии сайта. Для крупных проектов мы рекомендуем создавать отдельную версию дизайна и сайта.

    Поддерживаемые устройства

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

    Обязательный meta - тег

    Для корректного отображения и работы динамических медиа-запросов, необходимо включить viewport meta - тег.

    Использование медиа-запросов

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

  • Использовать скомпилированную версию, bootstrap-responsive.css
  • Добавить @import "responsive.less" и перекомпилировать Bootstrap
  • Изменить и перекомпилировать responsive.less как отдельный файл
  • Почему бы не включить этот функционал в Bootstrap по умолчанию? Правда в том что не все элементы должны быть динамическими. Вместо того чтобы разработчики удаляли данный функционал из Bootstrap, мы решили что логичнее будет дать возможность включать его при необходимости.

    // Ландшафтная телефоны @media (max-width: 480px) { ... } // От ландшафтная телефоны, до потретной наладонники @media (max-width: 767px) { ... } // От портретная наладонники до ландшафтной и настольных дисплеев @media (min-width: 768px) and (max-width: 979px) { ... } // Большой дисплей @media (min-width: 1200px) { ... }

    Возможность динамических классов Кто они такие?

    Для быстрой разработки под мобильные платформы, используйте эти классы для показа или скрытия контента в зависимости от устройства.

    Когда использовать?

    Использование данного функционала позволяет не создавать разные версии одного и того же сайта под разные устройства. Вместо этого можно управлять показом и скрытием контента в зависимости от устройства.

    Для примера, Вы можете показать элемент для навигации в мобильном устройстве, но скрыть на десктопах и наладонниках (планшетах).

    Поддерживаемые классы

    Показанная здесь таблица классов обеспечивает динамику для различных устройств и их работу в связке с сеткой макета и медиа-запросами (разделено по устройствам). Данные классы находятся в responsive.less .

    Класс Телефоны 480px и меньше Наладонники (Планшеты) 767px и меньше Ноутбуки и десктопы 768px и больше .visible-phone .visible-tablet .visible-desktop .hidden-phone .hidden-tablet .hidden-desktop
    Виден
    Виден
    Виден
    Виден Виден
    Виден Виден
    Виден Виден
    Тестирование

    Измените размер окна или откройте данную страницу на мобильном устройстве для тестирование вышеуказанных классов в действии.

    Виден на...

    Зеленая отметка означает что блок виден в текущем окне шаблона.

    • Телефон✔ Телефон
    • Планшет✔ Планшет
    • Монитор✔ Монитор
    Скрыт на...

    Здесь зеленая отметка блока означает что он скрыт в текущем окне шаблона.

    • Телефон✔ Телефон
    • Планшет✔ Планшет
    • Монитор✔ Монитор

    На этом уроке узнаем, как скачать и подключить фреймворк Bootstrap (версию 3 или 4) к сайту.

    Набор инструментов для изучения Bootstrap

    Минимальный набор инструментов (программ) для создания веб-проектов на фреймворке Bootstrap:

    • текстовый редактор для работы с кодом ("Блокнот", "Brackets", "Notepad++" или др.);
    • браузер (Google Chrome, Mozilla Firefox, Opera, Safari, Internet Explorer или др.).
    Загрузка фреймворка Bootstrap

    Создание веб-проекта, в основу дизайна которого положен фреймворк Bootstrap всегда начинают с его загрузки. Загрузить фреймворк Bootstrap можно различными способами . Например, посредством ссылки, расположенной на сайте getbootstrap.com или с помощью пакетного менеджера npm, Composer, Bower или др. Способ как это осуществить зависит от вашего опыта или конкретной ситуации .

    Как установить фреймворк Bootstrap с помощью пакетных менеджеров, а также как осуществить его сборку посредством Grunt, можно почитать в этой статье .

    Наиболее просто выполнить загрузку – это воспользоваться ссылкой . На сайте Bootstrap присутствуют 2 ссылки.

    Первая ссылка содержит готовые к использованию файлы CSS и JavaScript . Эту сборку в основном используют для изучения фреймворка или для использования в проектах, дизайн которых может быть выполнен в стилях заложенных авторами по умолчанию.

    Скачать Bootstrap 3.4.1 Скачать Bootstrap 4.3.1

    Вторая ссылка содержит фреймворк в исходных кодах . Эта версия более удобна для разработки сайтов, т.к. позволяет очень просто изменить стили, цветовую гамму компонентов, выполнить их настройку и др. Но эти исходные файлы, перед тем как использовать на странице, нужно будет скомпилировать и минимизировать. Данный процесс обычно автоматизируют, например, с помощью Gulp.

    Исходные коды Bootstrap 3.4.1 Исходные коды Bootstrap 4.3.1 Распаковка архива Bootstrap

    После скачивания архива (с готовыми к применению CSS и JavaScript файлами), его необходимо распаковать в каталог вашего веб-проекта.

    Если рассмотреть архив, то можно заметить, что он имеет следующее содержимое (на примере Bootstrap 3.4.1):

    Bootstrap/ ├── css/ │ ├── bootstrap.css │ ├── bootstrap.min.css │ ├── bootstrap-theme.css │ └── bootstrap-theme.min.css ├── js/ │ ├── bootstrap.js │ └── bootstrap.min.js └── fonts/ ├── glyphicons-halflings-regular.eot ├── glyphicons-halflings-regular.svg ├── glyphicons-halflings-regular.ttf └── glyphicons-halflings-regular.woff

    В каталоге css находятся стили фреймворка Bootstrap, а в js - плагины для обеспечения работы некоторых компонентов. Плагины написаны с использованием функций библиотеки jQuery. Поэтому перед Bootstrap JS необходимо подключить библиотеку jQuery.

    Как вы можете заметить, в архиве есть 2 версии CSS и JavaScript файлов, т.е. с суффиксом min и без него. Версия файла с min ничем ни отличается от без min , она просто минимизирована (сжата).

    В продакшене (на рабочем сайте) лучше использовать минимизированные версии файлов. Эти файлы имеют меньший размер, и, следовательно, обеспечивают более быструю загрузку страниц сайта.

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

    Кроме этих файлов, в данный архив ещё входит иконочный шрифт "Glyphicons" . Шрифт "Glyphicons" насчитывает более 250 иконок из набора "Glyphicon Halflings". Шрифт представлен с помощью 4 файлов: glyphicons-halflings-regular.eot , glyphicons-halflings-regular.svg , glyphicons-halflings-regular.ttf , glyphicons-halflings-regular.woff).

    Такое разнообразие форматов одного и того же шрифта необходимо для того чтобы обеспечить его отображение во всех браузерах.

    Про иконки в формате шрифта, а также, про то какие они имеют достоинства и недостатки, можно почитать в этой статье .

    Архив фреймворка Bootstrap 4 практически ничем ни отличается от Bootstrap 3 . Основное его отличие в том, что он не содержит шрифт "Glyphicons" . Если вам нужны шрифтовые иконки, то их необходимо будет подключить самостоятельно. Например, воспользовавшись одним из следующих наборов: FontAwesome , Octicons, Glyphicons, IcoMoon или др. Если же вы не хотите использовать готовый шрифт, а создать свой, который будет состоять только из нужных значков, то воспользуйтесь этой информацией .

    Кроме этого архив Bootstrap 4 содержит ещё файлы bootstrap-grid.css и bootstrap-reboot.css . Данные файлы необходимы только тем, кому нужен не целый фреймворк, а только его часть .

    Первый файл (bootstrap-grid.css) содержит сетку Bootstrap , а второй (bootstrap-reboot.css) - нормализатор, который устанавливает базовые стили, для того чтобы они у всех HTML-элементов во всех браузерах были одинаковыми.

    Подключение Bootstrap к HTML странице

    Процесс установки фреймворка Bootstrap 3 состоит из подключения следующих файлов к HTML 5 странице:

  • Bootstrap CSS (bootstrap.min.css);
  • Последней версии библиотеки jQuery (необходима для работы JS плагинов Bootstrap);
  • Bootstrap JavaScript (bootstrap.min.js).
  • Примечание: Файлы JavaScript лучше подключать перед закрывающим тегом body (), так как это обеспечит более быструю загрузку и отображение основного контента веб-страницы.

    ...

    Подключение фреймворка Bootstrap 4 осуществляется так:

    ...

    Подключить Bootstrap 4 можно также с помощью CDN (при этом скачивать Bootstrap в проект не нужно):

    Скопировано

    ...

    CDN Bootstrap 3.4.1:

    Скопировано

    Для проверки работоспособности фреймворка, создадим кнопку, при поднесении к которой будет показываться всплывающая подсказка popover.

    Поднеси ко мне курсор $(function () { $("").popover({trigger:"hover"}); });

    Статья, в которой рассмотрим сайты, предлагающие веб-дизайнерам, разработчикам или просто любителям бесплатные шаблоны (templates) и темы (themes) для Bootstrap.

    Сайты, на которых можно бесплатно скачать Bootstrap шаблоны

    Данный сайт содержит бесплатные темы и шаблоны Bootstrap как для личного так и для коммерческого использования. Все шаблоны разложены по категориям "лендинг страницы", "одностраничные сайты", "блоги", "портфолио" и т.д.

    На данном сайте доступны для просмотра и скачивания бесплатные адаптивные шаблоны Bootstrap. Страница этого ресурса состоит из двух разделов. В первом разделе (вверху страницы) распологаются платные шаблоны, а во втором разделе (внизу страницы) - бесплатные.

    Сайт Bootswatch содержит бесплатные темы для Bootstrap, которые отличаются от оригинальной только тем, что они выполнены в другой цветовой палитре. Кроме этого данные темы очень просты в установке, достаточно скачать CSS файл и заменить им оригинальный файл Bootstrap.

    На этом сайте представлены бесплатные и платные темы. Правда выбор бесплатных тем, да и платных не так велик. Но, зато на PrepBootstrap содержится для фреймворка Bootstrap очень большое число HTML виджетов и компонентов (более 100).

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

    Сайт, на котором представлено очень большой выбор тем для Twitter Bootstrap. Для удобства поиска все темы сгруппированы в категории подобно тому, как это сделано на сайте Start Bootstrap.

    Сайт Free CSS содержит большое количество тем, включая темы для платформы Twitter Bootstrap. Каждую из тем можно вживую посмотреть с помощью кнопки "Live Demo" и при желании скачать.

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

    На сайте WebThemez доступны для скачивания более 200 бесплатных шаблонов для Bootstrap. К каждому шаблону приложено описание и его ключевые особенности.

    Ребята, я считаю, что Bootstrap — очень классная вещь. Почему так, я попытаюсь объяснить в этой статье. Что ж, поехали Я сразу извиняюсь за то, что почти вся первая половина статьи написана без картинок, там только теория, объяснение работы сетки. Но это очень важно! Кому из вас надо, тот возьмет в себя в руки, прочитает, и, я надеюсь, поймет. Вторая половина статья уже воспринимается попроще, там больше примеров со скриншотами.

    Bootstrap — что это?

    Итак, начинаем с важного вопроса. Бутстрап — это css и js-фреймворк, по сути, по сути, набор файлов с готовым написанным кодом. Цель разработчиков практически любого фреймворка — упростить разработку сайта себе и другим, кому будет доступен инструмент. В случае с Bootstrap он полностью бесплатен, так что вы можете использовать его любым образом, редактировать исходный код и как угодно переделывать фреймворк под себя. Это отлично.

    Установка Bootstrap

    Если вам нужно просто подключить файлы фреймворка к html-документу (например, для практики), просто скачайте фреймворк с официального сайта getbootstrap.com , скопируйте его файлы в проект и подключите те, которые вам нужны. Сделаю краткий обзор этих файлов:

  • bootstrap.css и bootstrap.min.css — несжатая и сжатая версии css-кода фреймворка. К рабочему проекту рекомендуется подключать сжатый файл, таким образом вы чуть-чуть улучшите скорость загрузки. Но если вы планируете смотреть код в файле, подключайте несжатую версию.
  • bootstrap.js и bootstrap.min.js — файл со скриптами
  • папка fonts и в ней файлы glyphicons — это иконочный шрифт Bootstrap. В нем около 200 иконок. Для большинства случаев вам их хватит, иногда требуется подключение других. Об иконочном шрифте мы еще поговорим.
  • Это стандартный набор фреймворка. На самом деле вы легко можете его кастомизировать и изменять под себя. Например, вообще не использовать скрипты или подключить одну только сетку. В общем, об этом мы также поговорим.

    Русская документация Bootstrap

    Зайдя на getbootstrap вы наверняка заметили, что тут все на английском. Нам же пригодилась бы русская справка по фреймворку. Найти ее легко. Для этого перейдите с главной страницы в раздел Getting Started . Листайте в самый низ, там будет ссылка на переводы. Ищите там русский и кликайте по нему. Все, теперь вы на русскоязычной версии сайта. Правда, тут переведено не все, но где-то 70-80% точно, так что все разберетесь.

    Сетка Бутстрапа

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

    Что это за классы? Отправляемся к документации, она нам сильно поможет. Зайдите в раздел CSS — Grid System . Общие правила работы с сеткой просты, сейчас перечислю их.

    Как работать с сеткой?

    Представьте себе ее, как html-таблицу. Если вы когда-нибудь писали html-код для таблиц, то знаете, что все содержимое помещается в тег table , один ряд помещается в тег tr , а уже в него помещаются ячейки — td .

    Так вот, в сетке все аналогично. Класс container служит общим контейнером для сетки. Есть 2 варианта сетки бутстрапа — полностью резиновая и имеющая все-таки конечную максимальную ширину. Так вот, при задании общему блоку класса container сайт будет иметь максимальную ширину в 1170 пикселей. Больше он расширяться не будет. Естественно, содержимое будет отцентрировано.

    Если же задать класс container-fluid , то сетка будет полностью резиновой, то есть не будет ограничений по размеру. Например, если человек откроект сайт на мониторе шириной 1920 пикселей, он увидит его на всю ширину.

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

    Отлично, в блоке container следует размещать ряд сетки. В него нужно поместить все блоки, которые стоят в одной строке. То есть если мы возьмем самый типичный шаблон: шапка, основная часть, колонка справа и футер, то тут 3 колонки. В первой будет только шапка, во второй — контент и боковая колонка, а в последней — футер. Разметка для такого сайта будет примерно такой:

    Шапка Контент... и боковая колонка Футер

    Но пока это неправильная разметка, потому что не хватает... чего? Правильно, ячеек! В случае с Bootstrap их еще называют колонками. Сетка бутстрапа состоит из 12 колонок. Ее можно внедрить в любой блок любой ширины, хоть 1200 пикселей, хоть 100. Все это потому, что ширина колонок задана не в пикселях, а в процентах.

    Как же работает эта самая 12-ти колоночная система?

    Итак, мы подошли к самому важному вопросу, связанному с фреймворком. Поверьте, если вы поймете это, все остальное это уже ерунда. Главное понять, как работает сетка, и путь к быстрой адаптивной верстке будет для вас открыт.

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

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

  • ld — для больших экранов, шириной более 1200 пикселей (десктопные компьютеры);
  • md — для средних экранов, ширина от 992 до 1199 (компьютеры, нетбуки);
  • sm — для маленьких экранов, ширина от 768 до 991 пикселя (планшеты);
  • xs — экстра-маленькие экраны, ширина менее 768px.
  • Вот такие 4 класса, ну а для управления размерами элементов используются числа от 1 до 12, потому что, как помните, колонок в сетке именно 12.

    Шапка Контент Боковая колонка Футер

    Разобраться в ней достаточно просто. Первым делом создаем шапку, ее вообще можно не помещать в сетку, так как она в любом случае будет занимать 100% ширины (обычно). Но мы все-таки поместим. Что это за класс col-md-12 ? Как я вам уже говорил, просто col- никто не пишет, этим классом мы, по сути, сообщаем браузеру:
    Это ячейка | колонка
    На средних устройствах (класс md) ее ширина должна составлять 12 колонок из 12, то есть 100% от ширины ряда (row).
    Ну а что с шириной на других устройствах? На large (lg) экранах она тоже будет 100%, потому что значения для больших экранов наследуются, а для меньших нет. Все просто: если вы бы написали col-xs-4 , то ширина колонки была бы 33% на всех устройствах, а если col-lg-4 , то только на больших. Вот такая особенность, запомните ее.

    Ну а если на меньшие экраны значение ширины не сохраняется, то что происходит? Оно сбрасывается. Вот как это происходит:
    col-sm-4 — на маленьких экранах блок будет занимать 33% ширины, таким же он будет на экранах md и lg, но на xs, то есть самых маленьких, ширина сброситься до 100%. Итак, запомните еще 1 простое правило: Если для меньших экранов ничего не задано, то на них блок будет отображаться на 100% ширины.

    Контент Боковая колонка

    По сути, мы указываем браузеру:
    Пусть блок контента будет на ширину 8 из 12-ти колонок и такая ситуация будет на маленьких, средних и больших экранах (достаточно указать для маленьких, для больших экранов, как вы помните, значение наследуется). А вот на самых маленьких экранах блок будет заниматься 100%. Это правильно, обычно на мобильных устройствах сайты идут именно в 1 колонку.
    Пусть боковая колонка будет шириной в одну треть ширины ряда на все тех же маленьких, средних и больших экранах.Ну а на самых маленьких, как вы уже поняли, ее ширина также сбрасывается до 100%. Вот так все просто.

    Ну а с футером и разбираться нечего. Что ж, базовые принципы работы сетки мы разобрали, но нужно еще посмотреть как работает…

    Вложенная сетка Bootstrap

    Дело в том, что сейчас с вами мы разбили шаблон лишь на основные блоки, но ведь у них внутри тоже может быть разделение на колонки. Например, в контенте могут выводиться товары в несколько колонок. Как быть? Очень просто — мы создаем внутри точно такую же сетку. Она будет вложенной, но тоже содержит в себе 12 колонок. Если все это обобщить, то вот к какому заключению приходим:
    Внутри любого блока может быть неограниченное количество сеток. Например, в блоке с товарами сетка для разделения товаров, в самом блоке с одним товаром можно создать еще одну сетку, например, для разделения цены, информации о наличии и доп. информации.

    Сейчас мы с вами попробуем сделать еще одну сетку внутри блока с контентом, чтобы расположить в 3 колонки товары. Итак, берем блок, в котором у нас контент:

    Контент

    И пишем в него:

    Каталог товаров: Название товара

    Описание товара

    Как видите, мы создали внутри контента новую сетку — вложили внутрь ряд, а в ряду уже будут 3 блока с товарами. Просто скопируйте блок col-sm-4 с карточкой товара и вставьте его еще 2 раза, получится вот что (картинку товара можно взять любую, я взял велик):

    Упустил еще один важный момент, чтобы картинки адаптировались под блоки, в которых находятся, каждой из них нужно задать класс img-responsive . Я если вы, как и я, считаете, что это делать неудобно, то просто напишите в собственном style.css так:

    Img{ max-width: 100%; height: auto; display: block; }

    Все, сохраните этот код и подключите свой css-файл к проекту. Теперь картинки будут по умолчанию адаптивными.

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

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

    Responsive-утилиты

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

    Вариантов применения очень много, но я вам не сказал о самом главном, как использовать эти утилиты? Для этого всего лишь добавьте классы нужному блоку. Если его нужно скрыть, достаточно указать такой класс:

    Футер

    Что в данном случае сделает класс hidden-xs ? Он скроет футер на экстра-маленьких устройствах. На всех остальных блок будет виден.

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

  • Слово hidden или visible, в зависимости от того, что вам нужно
  • Сокращение xs, sm, md или lg, указывающее, на каких экранах скрывать или показывать блок.
  • Для visible также нужно добавить одно из трех значений: block — отображать элемент как блочный, inline-block — как строчно-блочный, inline — строчный.
  • Ну и парочку примеров, чтобы было понятно:

  • hidden-xs hidden-lg — скроет элемент на самых маленьких и больших экранах. Как видите, можно указывать несколько классов через пробел.
  • visible-xs-inline visible-md-block — на маленьких и large-экранах элемент отображаться не будет вообще. На экстра-маленьких он будет строчным, а на средних — блоком.
  • visible-lg-block — элемент будет виден только на самых больших экранах, на всех остальных будет скрыт
  • Вот так вот все работает. Именно так и никак иначе. Надеюсь, вы это поняли. Давайте закрепим на практике. У нас есть тестовый шаблон, хоть и очень примитивный.

    Задача: сделать так, чтобы на маленьких экранах исчезала боковая колонка, а на самых маленьких еще и один товар. И чтобы на xs-устройствах товары были уже в 2 колонки, а не в 3.

    Попробуйте сделать это самостоятельно, редактируя лишь html-код. Что же нужно сделать? Сначала разберемся с колонкой, чтобы скрыть ее на sm-экранах, всего лишь нужно добавить ей класс hidden-sm .

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

    То есть на средних устройствах блок будет занимать 4 колонки из 12, что можно перевести в 33,33% ширины, а на экстра-маленьких — 50%. И поскольку один блок с товаром исчезнет на этой ширине, оба блока с товарами аккуратно расположатся в 1 ряд, вот так:

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

    Сдвинь меня полностью

    Дальше я покажу еще 1 очень хороший прием — возможность сдвигать блок вправо или влево. Допустим у нас не 3 товара в ряду, а 1. И он занимает далеко не всю ширину. А ваша задача — выровнять его по центру. Это легко сделать, если держать в уме, что вы работаете с 12-ти колоночной системой.

    Оставим один блок с товаром:

    Достаточно произвести простые расчеты, чтобы понять, насколько нужно сдвинуть блок, чтобы отцентрировать его. Его нужно сдвинуть на 4 колонки влево на средних и больших экранах, и на 3 колонки на маленьких. Вот так это выглядит:

    Класс col-md-offset-4 говорит: на средних и больших экранах сдвинь блок влево на 33% ширины родительского контейнера (1/3 отступ слева, 1/3 ширина блока, ⅓ отступ справа, получается центровка).
    Класс col-xs-offset-6: на экстра-маленьких и маленьких экранах сдвинь влево на 25% (¼ отступ слева, ½ ширина блока, ¼ отступ справа).

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

    Компоненты Bootstrap и примеры их использования

    Я поздравляю вас. Только что мы прошли самую важную тему, связанную с фреймворком. Именно сетка и работа с ней важны. Работа с компонентами уже заключается в том, что вы просто идете в документацию, копируете там код нужного компонента и, если необходимо, изменяете под себя. Но я все же приведу дальше несколько примеров того, как использовать компоненты.

    Быстрые флоаты и отмена обтекания

    Классы pull-left и pull-right позволяют быстро сделать любой блок плавающим, отправив его влево или вправо. Не забывайте при этом про отмену обтекания. Для этого вы можете использовать класс clearfix .

    Bootstrap: Горизонтальное адаптивное (мобильное) меню

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

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

    Итак, первым делом я удалю блок с шапкой, потому что наше меню, по сути, и будет шапкой в случае с моим шаблоном. Код меню нужно разместить перед всем содержимым сайта, даже перед блоком container . Почему? Да вы сейчас сами увидите, что сетка уже встроена в панель навигации. Итак, вот код:

    Кнопка переключения Логотип/название

    Искать

    То, что кода много, этому не пугайтесь. Вот так теперь выглядит сайт:

    Но если меню у вас будет занимать не всю ширину экрана, есть смысл его отцентрировать. Для этого следует после следует создать дополнительный блок-обертку для меню, который разместить после блока с классом container-fluid . Не забудьте закрыть этот блок. Я дал ему класс navbar-wrap . Вот такие стили для него:

    То есть можно просто ограничить ширину и отцентрировать. Либо изначально замените container-fluid на container .

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

    Вот так меню будет выглядеть на устройствах с шириной экрана менее 768 пикселей:

    Как видите, меню свернулось. Оно раскрывается при клике по кнопке в правом верхнем углу. На экране остался только логотип.

    Выпадающее меню

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

    Итак, контейнером для выпадающего пункта служит обычный пункт списка с классом dropdown . Внутри него лежит основная ссылка, клик по которой раскрывает выпадающее меню. Очень важно прописать ей data-атрибут , который вы видите в коде, без него ничего не будет работать. Также вы должны убедиться, что файл bootstrap.js подключен к веб-страницам.

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

    Добавляем с помощью Bootstrap хлебные крошки (навигационная цепочка)

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

  • Главная
  • Каталог
  • Товары
  • По сути, достаточно нумерованному списку указать класс breadcrumb , а в него вписать обычные пункты списка. Кстати, выровняю по центру заголовки второго уровня в шаблоне (это нужно прописать в css):

    H2{ text-align: center; }

    Если вы хотите как-то изменить внешний вид хлебных крошек, достаточно обратится в css к селектору.breadcrumb . Например, так можно убрать фоновый цвет:

    Breadcrumb{ background: transparent; }

    Вот так сейчас выглядит сайт:

    Bootstrap таблицы

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

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

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

    Естественно, вы можете без проблем прописать свои собственные классы в style.css и использовать их.

    Итог

    Надеюсь, статья была полезна и вы смогли понять самое важное. Любые вопросы можете задавать с помощью комментариев.