Уроки по фреймворку Bootstrap 4

Автор учебного курса: Саакян Артак Арамович, студент гр. ИТк-401 ФГАОУ ВО «РГППУ.

Скачать Notepad++ Portable
Скачать материалы к учебному курсу - папка kurs_bootstrap.zip (1 Мб)




Теория 2. Компоненты

После прочтения темы перейдите к выполнению урока 2 и урока 3

Кнопки (Buttons)

Кнопка – это элемент интерфейса, представляющий собой прямоугольник, нажатие на который приводит к выполнению некоторого действия.

Кнопки используются в HTML-формах, диалоговых окнах, меню и других частях веб-страниц.

Создание кнопки в Bootstrap 4 осуществляется посредством добавления классов btn и btn-{theme} к элементу a или button. Вместо {theme} необходимо указать название темы (рисунок 1).

Для создания кнопки классы btn и btn-{theme} можно конечно добавить и к другому HTML элементу, но в большинстве случаев используются именно a и button.

Рисунок 1 — Кнопки
<button type="button" class="btn btn-primary">Primary</button>
<button type="button" class="btn btn-secondary">Secondary</button>
<button type="button" class="btn btn-success">Success</button>
<button type="button" class="btn btn-danger">Danger</button>
<button type="button" class="btn btn-warning">Warning</button>
<button type="button" class="btn btn-info">Info</button>
<button type="button" class="btn btn-light">Light</button>
<button type="button" class="btn btn-dark">Dark</button>
<button type="button" class="btn btn-link">Link</button>

Outline кнопки

Для создания кнопки с контуром (без фона), необходимо использовать классы btn и btn-outline-{theme} (рисунок 2).

Рисунок 2 — Outline кнопки
<button type="button" class="btn btn-outline-primary">Primary</button>
<button type="button" class="btn btn-outline-secondary">Secondary</button>
<button type="button" class="btn btn-outline-success">Success</button>
<button type="button" class="btn btn-outline-danger">Danger</button>
<button type="button" class="btn btn-outline-warning">Warning</button>
<button type="button" class="btn btn-outline-info">Info</button>
<button type="button" class="btn btn-outline-light">Light</button>
<button type="button" class="btn btn-outline-dark">Dark</button>

Хлебные крошки (Breadcrumbs)

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

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

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

Таким образом, хлебные крошки – это ещё один вариант навигации, который помогает пользователям ориентироваться в структуре сайта и перемещаться по его страницам.

В фреймворке Bootstrap создание хлебных крошек осуществляется с помощью компонента Breadcrumb. По сути этот компонент – это просто набор стилей, которые нужно добавить к определённой HTML разметке через классы (рисунок 3).

Рисунок 3 — Хлебные крошки
<nav aria-label="breadcrumb">
  <ol class="breadcrumb">
    <li class="breadcrumb-item active" aria-current="page">Главная</li>
  </ol>
</nav>

<nav aria-label="breadcrumb">
  <ol class="breadcrumb">
    <li class="breadcrumb-item"><a href="#">Главная</a></li>
    <li class="breadcrumb-item active" aria-current="page">Библиотека</li>
  </ol>
</nav>

<nav aria-label="breadcrumb">
  <ol class="breadcrumb">
    <li class="breadcrumb-item"><a href="#">Главная</a></li>
    <li class="breadcrumb-item"><a href="#">Библиотека</a></li>
    <li class="breadcrumb-item active" aria-current="page">Данные</li>
  </ol>
</nav>

Выпадающие списки (Dropdowns)

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

Выпадающие элементы «построены» на сторонней библиотеке Popper.js, которая обеспечивает динамическое позиционирование и определение размера окна просмотра. Обязательно включите popper.min.js перед JavaScript Bootstrap или используйте bootstrap.bundle.min.js / bootstrap.bundle.js, который содержит Popper.js. (рисунок 4)

Рисунок 4 — Подключение JavaScript скриптов

В Bootstrap создание кнопки или ссылки с выпадающим меню начинается с создания обёртки (элемента div с классом dropdown).

Класс dropdown используется для установки этому элементу относительного позиционирования (position: relative).

Следующий шаг сводится в добавление в эту обёртку двух элементов: кнопки или ссылки, и блока меню.

После этого к кнопке нужно добавить атрибут data-toggle со значением dropdown.

Пример HTML кода для создания кнопки с выпадающим меню на Bootstrap 4 (рисунок 5):

Рисунок 5 — Выпадающие списки
<div class="dropdown">
  <button class="btn btn-secondary dropdown-toggle" type="button" id="dropdownMenuButton" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
    Кнопка выпадающего списка
  </button>
  <div class="dropdown-menu" aria-labelledby="dropdownMenuButton">
    <a class="dropdown-item" href="#">Действие</a>
    <a class="dropdown-item" href="#">Другое действие</a>
    <a class="dropdown-item" href="#">Что-то еще здесь</a>
  </div>
</div>

Выпадающие списки для кнопок через разделитель

На следующем примере показана возможность добавления выпадающего списка к кнопке c помощью дополнительной кнопки со стрелочкой, которая отделена от предыдущей кнопки с помощью разделителя. Для группирования (объединения) двух этих кнопок используется класс .btn-group (группа кнопок) (рисунок 6).

Рисунок 6 — Кнопка с разделителем
<div class="btn-group">
  <button type="button" class="btn btn-primary">Primary</button>
  <button type="button" class="btn btn-primary dropdown-toggle dropdown-toggle-split" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
    <span class="sr-only">Переключатель выпадающего списка</span>
  </button>
  <div class="dropdown-menu">
    <a class="dropdown-item" href="#">Действие</a>
    <a class="dropdown-item" href="#">Другое действие</a>
    <a class="dropdown-item" href="#">Что-то еще здесь</a>
    <div class="dropdown-divider"></div>
    <a class="dropdown-item" href="#">Отдельная ссылка</a>
  </div>
</div>

Уведомления (Alerts)

Уведомления (alerts) предназначены для выделения на веб-странице некоторой информации с целью привлечения к ней внимания пользователя. Наиболее часто данный компонент используют для отображения ошибок и предупреждений при валидации форм обратной связи на сайтах, а также для сигнализации об успехе её отправки.

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

Цветовая гамма уведомлений (alerts) в Bootstrap:

  • alert-success (сообщения об успешном выполнении какого-либо действия);
  • alert-info (информационные сообщения);
  • alert-warning (предупреждающие сообщения);
  • alert-danger (сообщения об ошибки).

Кроме этих сообщений в Bootstrap 4 доступны ещё следующие: alert-primary, alert-secondary, alert-light и alert-dark.

Создание сообщения осуществляется посредством оборачивания необходимого текста, например, в элемент div и добавления двух классов. Первый класс (базовый) должен иметь название alert, а второй - alert-theme. Вместо слова theme во втором классе необходимо указать тему (цветовую гамму) сообщению.

Примеры уведомлений (рисунок 7):

Рисунок 7 — Уведомления
<div class="alert alert-primary" role="alert">
  Простое primary оповещение - проверьте!
</div>
<div class="alert alert-secondary" role="alert">
  Простое secondary оповещение - проверьте!
</div>
<div class="alert alert-success" role="alert">
  Простое success оповещение - проверьте!
</div>
<div class="alert alert-danger" role="alert">
  Простое danger оповещение - проверьте!
</div>
<div class="alert alert-warning" role="alert">
  Простое warning оповещение - проверьте!
</div>
<div class="alert alert-info" role="alert">
  Простое info оповещение - проверьте!
</div>
<div class="alert alert-light" role="alert">
  Простое light оповещение - проверьте!
</div>
<div class="alert alert-dark" role="alert">
  Простое dark оповещение - проверьте!
</div>

Закрытие (удаление) уведомлений

Для добавления к сообщению кнопки со значком «крестика» необходимо:

  • добавить к классам alert и alert-theme ещё класс alert-dismissible;
  • в контент контейнера сообщения добавить кнопку (button) с атрибутами class="close" и data-dismiss="alert".

Закрытие сообщения в Bootstrap 3 и 4 реализуется с помощью JavaScript. Поэтому данный функционал требует наличие подключённого к странице js-скрипта этого фреймворка или его части (в Bootstrap 4 он содержится в файле util.js)

Класс alert-dismissible предназначен для позиционирования кнопки внутри сообщения и добавления к ней дополнительного отступа справа. Атрибут data-dismiss="alert" используется в качестве ключа, с помощью которого JavaScript добавляет к кнопке необходимый функционал.

Плагин jQuery и Bootstrap JS должны быть подключены, иначе при нажатии на кнопку крестик, уведомление закрываться не будет.

Сообщение с кнопкой "Закрыть" (рисунок 8):

Рисунок 8 — Уведомление с кнопкой
<div class="alert alert-warning alert-dismissible fade show" role="alert">
  <strong>Внимание!</strong> Вам следует проверить некоторые из этих полей.
  <button type="button" class="close" data-dismiss="alert" aria-label="Close">
    <span aria-hidden="true">&times;</span>
  </button>
</div>

Аккордеон (Collapse)

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

Плагин jQuery и Bootstrap JS должны быть подключены, иначе при нажатии на аккордеон, панель не будет разворачиваться и сворачиваться.

Следующий пример покажет вам, как создать аккордеон, используя компонент collapse (сворачивание) (рисунок 9):

Рисунок 9 — Аккордеон
<div class="accordion" id="accordionExample">
  <div class="card">
    <div class="card-header" id="headingOne">
      <h2 class="mb-0">
        <button class="btn btn-link btn-block text-left" type="button" data-toggle="collapse" data-target="#collapseOne" aria-expanded="true" aria-controls="collapseOne">
          Сворачиваемый групповой элемент #1
        </button>
      </h2>
    </div>

    <div id="collapseOne" class="collapse show" aria-labelledby="headingOne" data-parent="#accordionExample">
      <div class="card-body">
        Некоторый заполнитель для первой панели аккордеона. Эта панель отображается по умолчанию благодаря классу <code>.show</code>.
      </div>
    </div>
  </div>
  <div class="card">
    <div class="card-header" id="headingTwo">
      <h2 class="mb-0">
        <button class="btn btn-link btn-block text-left collapsed" type="button" data-toggle="collapse" data-target="#collapseTwo" aria-expanded="false" aria-controls="collapseTwo">
          Сворачиваемый групповой элемент #2
        </button>
      </h2>
    </div>
    <div id="collapseTwo" class="collapse" aria-labelledby="headingTwo" data-parent="#accordionExample">
      <div class="card-body">
        Некоторый заполнитель для второй панели аккордеона. По умолчанию эта панель скрыта.
      </div>
    </div>
  </div>
  <div class="card">
    <div class="card-header" id="headingThree">
      <h2 class="mb-0">
        <button class="btn btn-link btn-block text-left collapsed" type="button" data-toggle="collapse" data-target="#collapseThree" aria-expanded="false" aria-controls="collapseThree">
          Сворачиваемый групповой элемент #3
        </button>
      </h2>
    </div>
    <div id="collapseThree" class="collapse" aria-labelledby="headingThree" data-parent="#accordionExample">
      <div class="card-body">
        И, наконец, заполнитель для третьей и последней панели аккордеона. По умолчанию эта панель скрыта.
      </div>
    </div>
  </div>
</div>

Атрибут data-toggle="collapse" необходимо добавить к элементу управления (например, кнопка или ссылка, нажав на которую вы хотите свернуть другой элемент, содержащий контент). А также необходимо указать какой именно элемент вы хотите свернуть, для этого необходимо добавить к элементу управления атрибутом data-target (для кнопки) или href (для ссылки) со значением идентификатора того элемента, который необходимо свернуть. И ещё не забудьте добавить класс .collapse к сворачиваемому элементу.

Jumbotron

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

Для создания Jumbotron необходимо заключить подготовленное содержимое в блочный элемент <div>...</div> и применить к нему класс .jumbotron (рисунок 10).

Рисунок 10 — Jumbotron
<div class="jumbotron">
  <h1 class="display-4">Привет, мир!</h1>
  <p class="lead">Это простой компонент в стиле jumbotron для привлечения дополнительного внимания к избранному контенту или информации.</p>
  <hr class="my-4">
  <p>Он использует служебные классы для типографики и интервалов для размещения содержимого в более крупном контейнере.</p>
  <a class="btn btn-primary btn-lg" href="#" role="button">Узнать больше</a>
</div>

Чтобы сделать jumbotron во всю ширину и без закругленных углов, добавьте класс-модификатор .jumbotron-fluid и добавьте внутрь .container или .container-fluid (рисунок 11).

Рисунок 11 — Jumbotron на всю ширину
<div class="jumbotron jumbotron-fluid">
  <div class="container">
    <h1 class="display-4">Jumbotron на всю ширину</h1>
    <p class="lead">Это модифицированный jumbotron, который занимает все горизонтальное пространство своего родителя.</p>
  </div>
</div>

Навигация (Navs)

Навигационные панели (navs) в Twitter Bootstrap реализованы в виде вкладок (tabs) и кнопок (pills). Создание навигационной панели начинается с создания маркированного списка (<ul></ul>) к которому добавляется базовый класс .nav. После этого переходят к созданию пунктов (<li></li>), которые будут являться вкладками (tabs) или кнопками (pills).

Чтобы добавить ссылки внутри навигационной области, используйте

Рисунок 12 — Навигация
<ul class="nav">
  <li class="nav-item">
    <a class="nav-link active" href="#">Активная</a>
  </li>
  <li class="nav-item">
    <a class="nav-link" href="#">Ссылка</a>
  </li>
  <li class="nav-item">
    <a class="nav-link" href="#">Ссылка</a>
  </li>
  <li class="nav-item">
    <a class="nav-link disabled" href="#" tabindex="-1" aria-disabled="true">Отключенная</a>
  </li>
</ul>

Навигационная панель (Navbar)

Создание горизонтального адаптивного меню для сайта в Bootstrap осуществляется с помощью компонента Navbar.

Navbar имеет 2 режима отображения:

  • десктопный (обычный) – выводятся все элементы меню (рисунок 13);
  • мобильный (свёрнутый) – по умолчанию отображается бренд и кнопка «Гамбургер» (для открытия основного содержимого меню) (рисунок 14 и 15).
Рисунок 13 — Десктопный вид меню Navbar
Рисунок 14 — Мобильный вид горизонтального меню Navbar
Рисунок 15 — Мобильный вид открытого горизонтального меню Navbar

Режим отображения меню зависит от ширины viewport браузера. По умолчанию меню Navbar имеет мобильный вид при ширине viewport меньше 768px.

HTML-структура Bootstrap меню Navbar:

<nav class="navbar navbar-expand-lg navbar-light bg-light">
  <a class="navbar-brand" href="#">Панель навигации</a>
  <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Переключатель навигации">
    <span class="navbar-toggler-icon"></span>
  </button>

  <div class="collapse navbar-collapse" id="navbarSupportedContent">
    <ul class="navbar-nav mr-auto">
      <li class="nav-item active">
        <a class="nav-link" href="#">Главная <span class="sr-only">(текущая)</span></a>
      </li>
      <li class="nav-item">
        <a class="nav-link" href="#">Ссылка</a>
      </li>
      <li class="nav-item dropdown">
        <a class="nav-link dropdown-toggle" href="#" id="navbarDropdown" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
          Выпадающий список
        </a>
        <div class="dropdown-menu" aria-labelledby="navbarDropdown">
          <a class="dropdown-item" href="#">Действие</a>
          <a class="dropdown-item" href="#">Другое действие</a>
          <div class="dropdown-divider"></div>
          <a class="dropdown-item" href="#">Что-то еще здесь</a>
        </div>
      </li>
      <li class="nav-item">
        <a class="nav-link disabled" href="#" tabindex="-1" aria-disabled="true">Отключенный</a>
      </li>
    </ul>
    <form class="form-inline my-2 my-lg-0">
      <input class="form-control mr-sm-2" type="search" placeholder="Поиск" aria-label="Поиск">
      <button class="btn btn-outline-success my-2 my-sm-0" type="submit">Поиск</button>
    </form>
  </div>
</nav>

Кнопка «Гамбургер» отображается только в мобильной версии и предназначена для открытия основной части меню. Указание элемента (основной части) осуществляется посредством атрибута data-target.

Кроме атрибута data-target и связанным с ним id, в меню Navbar используются и много других сущностей. Они играют роль селекторов, с помощью которых к элементам меню добавляются стили (CSS) и логика (JavaScript).

Например, у кнопки «Гамбургер» атрибут data-toggle="collapse" предназначен для того, чтобы JavaScript его инициализировал как Collapse. После инициализации эта кнопка может переключать видимость элемента, указанного в data-target.

Нумерация страниц (Pagination)

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

Чтобы создать нумерацию страниц по умолчанию, добавьте class="pagination" к элементу <ul>, который представляет список страниц. Также добавьте .page-item к каждому элементу <li> и .page-link к каждому элементу <a> (рисунок 16).

Рисунок 16 — Нумерация страниц
<nav aria-label="Page navigation example">
  <ul class="pagination">
    <li class="page-item"><a class="page-link" href="#">Previous</a></li>
    <li class="page-item"><a class="page-link" href="#">1</a></li>
    <li class="page-item"><a class="page-link" href="#">2</a></li>
    <li class="page-item"><a class="page-link" href="#">3</a></li>
    <li class="page-item"><a class="page-link" href="#">Next</a></li>
  </ul>
</nav>

Неактивные и активные состояния

Ссылки в нумерации страниц можно настраивать под разные обстоятельства. Используйте класс .disabled для ссылок, которые должны выглядеть некликабельными, и .active - для обозначения текущей страницы.

Добавьте класс .active к элементу <li>, который представляет текущую страницу (страницу, на которой сейчас находится пользователь).

Добавьте класс .disabled к элементу <li>, чтобы отключить данный пункт (рисунок 17).

Рисунок 17 — Неактивные и активные состояния
<nav aria-label="...">
  <ul class="pagination">
    <li class="page-item disabled">
      <a class="page-link" href="#" tabindex="-1" aria-disabled="true">Предыдущая</a>
    </li>
    <li class="page-item"><a class="page-link" href="#">1</a></li>
    <li class="page-item active" aria-current="page">
      <a class="page-link" href="#">2</a>
    </li>
    <li class="page-item"><a class="page-link" href="#">3</a></li>
    <li class="page-item">
      <a class="page-link" href="#">Следующая</a>
    </li>
  </ul>
</nav>

Значки (Badges)

Значки в Bootstrap - это прямоугольник, который содержит внутри себя текст. Бейдж является строчным элементом (display: inline). Его можно поместить в любую часть текстового контента сайта.

Создание значка осуществляется посредством помещения некоторого текста в элемент, например span и добавления к этому элементу двух классов (badge и). (рисунок 18)

Рисунок 18 — Значки
<h1>Пример заголовка <span class="badge">Новый</span></h1>
<h2>Пример заголовка <span class="badge">Новый</span></h2>
<h3>Пример заголовка <span class="badge">Новый</span></h3>
<h3>Пример заголовка <span class="badge">Новый</span></h3>
<h5>Пример заголовка <span class="badge">Новый</span></h5>
<h6>Пример заголовка <span class="badge">Новый</span></h6>

Изменение цвета значка

В Bootstrap 4 изменение цвета бейджа выполняется с помощью класса badge-{theme}. Вместо {theme} необходимо указать название темы (например, danger). (рисунок 19)

Рисунок 19 — Цветные значки
<span class="badge badge-primary">Primary</span>
<span class="badge">Secondary</span>
<span class="badge badge-success">Success</span>
<span class="badge badge-danger">Danger</span>
<span class="badge badge-warning">Warning</span>
<span class="badge badge-info">Info</span>
<span class="badge badge-light">Light</span>
<span class="badge badge-dark">Dark</span>

Значки со скруглёнными углами

Для того чтобы сделать бейдж с более большим радиусом скругления углов добавьте дополнительно к badge и badge-{theme} класс badge-pill (рисунок 20).

Рисунок 20 — Скругленные значки
<span class="badge badge-pill badge-primary">Primary</span>
<span class="badge badge-pill">Secondary</span>
<span class="badge badge-pill badge-success">Success</span>
<span class="badge badge-pill badge-danger">Danger</span>
<span class="badge badge-pill badge-warning">Warning</span>
<span class="badge badge-pill badge-info">Info</span>
<span class="badge badge-pill badge-light">Light</span>
<span class="badge badge-pill badge-dark">Dark</span>

Значки для отображения количества сообщений и уведомлений

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

В этом виде значки используются как часть ссылки или кнопки (рисунок 21).

Рисунок 21 — Значок уведомления
<button type="button" class="btn btn-primary">
  Уведомления <span class="badge badge-light">4</span>
</button>

Спиннеры (Spinners)

Bootstrap Spinners – это компонент фреймворка Bootstrap 4, предназначенный для создания на веб-проектах загрузочной анимации, которая в основном используется для индикации на сайте не очень длительных по времени процессов (в среднем выполняющихся в пределах от 1 до 4 секунд). Например, для представления процесса загрузки всей страницы или некоторой её части.

Спиннеры в Bootstrap построены только с использованием HTML и CSS (без JavaScript). Однако при их реальном применении на веб-проектах без JavaScript всё равно не обойтись. Его нужно будет использовать, например, когда нужно будет переключить видимость спиннера.

Поддержка вспомогательных технологий в компоненте Spinners обеспечивается с помощью атрибута role="status" и элемента <span class="sr-only">Загрузка...</span>.

Border spinner (Граница спиннера)

Граница спиннера – это первый вид спиннера, который построен на основе CSS-свойства border и анимации вращения (функции rotate свойства transform) (рисунок 22).

Рисунок 22 — Спиннер
<div class="spinner-border" role="status">
  <span class="sr-only">Загрузка...</span>
</div>

Border spinner использует ключевое слово currentColor для указания цвета в CSS-свойстве border. Это решение позволяет установить цвет спиннеру посредством утилитных классов Bootstrap 4, предназначенных для изменения цвета (рисунок 23).

Рисунок 23 — Цветной спиннер
<div class="spinner-border text-primary" role="status">
  <span class="sr-only">Загрузка...</span>
</div>
<div class="spinner-border text-secondary" role="status">
  <span class="sr-only">Загрузка...</span>
</div>
<div class="spinner-border text-success" role="status">
  <span class="sr-only">Загрузка...</span>
</div>
<div class="spinner-border text-danger" role="status">
  <span class="sr-only">Загрузка...</span>
</div>
<div class="spinner-border text-warning" role="status">
  <span class="sr-only">Загрузка...</span>
</div>
<div class="spinner-border text-info" role="status">
  <span class="sr-only">Загрузка...</span>
</div>
<div class="spinner-border text-light" role="status">
  <span class="sr-only">Загрузка...</span>
</div>
<div class="spinner-border text-dark" role="status">
  <span class="sr-only">Загрузка...</span>
</div>

Почему для установления цвета не используются утилитные классы border-{color}? Всё дело в том, что данные классы устанавливают границы для всех четырёх сторон. А у border спиннеров одна граница (правая) имеет прозрачный цвет, и в случае его использования, он попросту её переопределит.

Growing spinner (Увеличивающийся спиннер)

Увеличивающийся спиннер – это второй вид спиннера, который построен на изменение прозрачности (opacity) и масштабировании (функции scale свойства transform) (рисунок 24).

Рисунок 24 — Увеличивающий спиннер
<div class="spinner-grow" role="status">
  <span class="sr-only">Загрузка...</span>
</div>

Growing spinner так же как и border spinner использует ключевое слово currentColor, но в этом спиннере оно используется для указания цвета фону. Благодаря этой особенности цвет growing спиннеру можно установить аналогичным образом (рисунок 25).

Рисунок 25 — Увеличивающийся цветной спиннер
<div class="spinner-grow text-primary" role="status">
  <span class="sr-only">Загрузка...</span>
</div>
<div class="spinner-grow text-secondary" role="status">
  <span class="sr-only">Загрузка...</span>
</div>
<div class="spinner-grow text-success" role="status">
  <span class="sr-only">Загрузка...</span>
</div>
<div class="spinner-grow text-danger" role="status">
  <span class="sr-only">Загрузка...</span>
</div>
<div class="spinner-grow text-warning" role="status">
  <span class="sr-only">Загрузка...</span>
</div>
<div class="spinner-grow text-info" role="status">
  <span class="sr-only">Загрузка...</span>
</div>
<div class="spinner-grow text-light" role="status">
  <span class="sr-only">Загрузка...</span>
</div>
<div class="spinner-grow text-dark" role="status">
  <span class="sr-only">Загрузка...</span>
</div>

Контрольные вопросы

  1. Как сделать синую кнопку?
  2. Что такое хлебные крошки?
  3. Для чего нужно подключать jquery, poper, bootstrap скрипты?
  4. Какой класс нужно прописать для выпадающего списка?
  5. Должны ли быть подключены jQuery и Bootstrap скрипты для аккордеона?
  6. Для чего предназначен Jumbotron?
  7. Навигация и навигационная панель это одно и тоже?
  8. Что такое пагинация?
  9. Какой класс используют для значков?
  10. Как сделать увеличивающий спиннер?

После прочтения темы перейдите к выполнению урока 2 и урока 3