Прогрессбар
Документация и примеры использования настраиваемых индикаторов выполнения 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.
<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>Sass
Переменные
$progress-height:1rem;$progress-font-size:$font-size-base*.75;$progress-bg:$gray-200;$progress-border-radius:$border-radius;$progress-box-shadow:$box-shadow-inset;$progress-bar-color:$white;$progress-bar-bg:$primary;$progress-bar-animation-timing:1slinearinfinite;$progress-bar-transition:width.6sease;Ключевые кадры
Используется для создания CSS-анимации для .progress-bar-animated. Включен в scss/_progress-bar.scss.
@if$enable-transitions{@keyframesprogress-bar-stripes{0%{background-position-x:$progress-height;}}}