Cмотреть на GitHub

Прогрессбар

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

Как это устроено

Компоненты прогрессбаров созданы из двух элементов HTML, CSS для задания ширины и нескольких атрибутов. Мы не используем элемент HTML5 <progress>, что обеспечивает возможность вертикального расположения прогрессбаров, возможность их анимации и размещения текстовых лейблов над ними.

  • Мы используем класс .progress как обертку для индикации максимального значения прогрессбара.
  • Мы используем внутренний класс .progress-bar для индикации пройденного прогресса.
  • Класс .progress-bar требует оформления себя как строчного элемента, обычного класса или CSS для задания своей ширины.
  • Класс .progress-bar также требует атрибут role и aria, чтобы стать открытыми к взаимодействию с вспомогательными технологиями.

Все это воплощено в примерах ниже.

<divclass="progress"><divclass="progress-bar"role="progressbar"aria-valuenow="0"aria-valuemin="0"aria-valuemax="100"></div></div><divclass="progress"><divclass="progress-bar"role="progressbar"style="width: 25%"aria-valuenow="25"aria-valuemin="0"aria-valuemax="100"></div></div><divclass="progress"><divclass="progress-bar"role="progressbar"style="width: 50%"aria-valuenow="50"aria-valuemin="0"aria-valuemax="100"></div></div><divclass="progress"><divclass="progress-bar"role="progressbar"style="width: 75%"aria-valuenow="75"aria-valuemin="0"aria-valuemax="100"></div></div><divclass="progress"><divclass="progress-bar"role="progressbar"style="width: 100%"aria-valuenow="100"aria-valuemin="0"aria-valuemax="100"></div></div>

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

<divclass="progress"><divclass="progress-bar w-75"role="progressbar"aria-valuenow="75"aria-valuemin="0"aria-valuemax="100"></div></div>

Лейблы

Добавляйте лейблы (т.е. инфо типа цифр) в ваши прогрессбары, размещая текст внутри класса .progress-bar.

25%
<divclass="progress"><divclass="progress-bar"role="progressbar"style="width: 25%;"aria-valuenow="25"aria-valuemin="0"aria-valuemax="100">25%</div></div>

Высота

В классе .progress задается лишь атрибут height, так что если вы измените это значение, внутренний класс .progress-bar автоматически изменит свой размер соответственно.

<divclass="progress"style="height: 1px;"><divclass="progress-bar"role="progressbar"style="width: 25%;"aria-valuenow="25"aria-valuemin="0"aria-valuemax="100"></div></div><divclass="progress"style="height: 20px;"><divclass="progress-bar"role="progressbar"style="width: 25%;"aria-valuenow="25"aria-valuemin="0"aria-valuemax="100"></div></div>

Фон

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

<divclass="progress"><divclass="progress-bar bg-success"role="progressbar"style="width: 25%"aria-valuenow="25"aria-valuemin="0"aria-valuemax="100"></div></div><divclass="progress"><divclass="progress-bar bg-info"role="progressbar"style="width: 50%"aria-valuenow="50"aria-valuemin="0"aria-valuemax="100"></div></div><divclass="progress"><divclass="progress-bar bg-warning"role="progressbar"style="width: 75%"aria-valuenow="75"aria-valuemin="0"aria-valuemax="100"></div></div><divclass="progress"><divclass="progress-bar bg-danger"role="progressbar"style="width: 100%"aria-valuenow="100"aria-valuemin="0"aria-valuemax="100"></div></div>

Множественные полосы

Включайте в свой прогрессбар таковые, если необходимо.

<divclass="progress"><divclass="progress-bar"role="progressbar"style="width: 15%"aria-valuenow="15"aria-valuemin="0"aria-valuemax="100"></div><divclass="progress-bar bg-success"role="progressbar"style="width: 30%"aria-valuenow="30"aria-valuemin="0"aria-valuemax="100"></div><divclass="progress-bar bg-info"role="progressbar"style="width: 20%"aria-valuenow="20"aria-valuemin="0"aria-valuemax="100"></div></div>

Полосатые

Добавьте класс .progress-bar-striped к любому элементу класса .progress-bar, чтобы добавить градиентные полосы на CSS к фоновому цвету прогрессбара.

<divclass="progress"><divclass="progress-bar progress-bar-striped"role="progressbar"style="width: 10%"aria-valuenow="10"aria-valuemin="0"aria-valuemax="100"></div></div><divclass="progress"><divclass="progress-bar progress-bar-striped bg-success"role="progressbar"style="width: 25%"aria-valuenow="25"aria-valuemin="0"aria-valuemax="100"></div></div><divclass="progress"><divclass="progress-bar progress-bar-striped bg-info"role="progressbar"style="width: 50%"aria-valuenow="50"aria-valuemin="0"aria-valuemax="100"></div></div><divclass="progress"><divclass="progress-bar progress-bar-striped bg-warning"role="progressbar"style="width: 75%"aria-valuenow="75"aria-valuemin="0"aria-valuemax="100"></div></div><divclass="progress"><divclass="progress-bar progress-bar-striped bg-danger"role="progressbar"style="width: 100%"aria-valuenow="100"aria-valuemin="0"aria-valuemax="100"></div></div>

Анимированные полосы

Добавьте класс .progress-bar-animated к элементу класса .progress-bar для анимации полосок справа налево анимациями CSS3.

<divclass="progress"><divclass="progress-bar progress-bar-striped progress-bar-animated"role="progressbar"aria-valuenow="75"aria-valuemin="0"aria-valuemax="100"style="width: 75%"></div></div>