Тег <progress>


Описание

Тег <progress> создаёт индикатор выполнения задачи, отображающий прогресс операции. Это строчный элемент, который визуализирует ход выполнения процесса в виде заполняющейся шкалы.

Базовый синтаксис:
<progress value="70" max="100">70%</progress>
Примеры использования:
<!-- Определённый прогресс --> <progress value="25" max="50">50%</progress> <!-- Неопределённый прогресс --> <progress>Загрузка...</progress> <!-- Связь с JavaScript --> <progress id="fileProgress" value="0" max="100"></progress>

Ключевые особенности:

  • Поддерживает два состояния: определённый и неопределённый прогресс
  • Без атрибута value отображается как индикатор ожидания
  • Текст внутри используется как fallback для старых браузеров
  • Семантически обозначает прогресс выполнения
  • Стилизуется через CSS (но ограниченно в разных браузерах)
Стилизация через CSS:
<style> progress { width: 300px; height: 20px; border: 1px solid #ccc; border-radius: 10px; } /* Стиль для WebKit/Blink */ progress::-webkit-progress-bar { background: #f0f0f0; border-radius: 10px; } progress::-webkit-progress-value { background: linear-gradient(to right, #4CAF50, #8BC34A); border-radius: 10px; } /* Стиль для Firefox */ progress::-moz-progress-bar { background: linear-gradient(to right, #4CAF50, #8BC34A); border-radius: 10px; } </style> <progress value="65" max="100">65%</progress>

Рекомендации по использованию:

  • Используйте для отображения хода загрузки, обработки данных
  • Для неопределённых процессов оставляйте без value
  • Всегда указывайте текстовую альтернативу внутри тега
  • Не используйте для измерений (применяйте <meter>)
  • Обновляйте значение через JavaScript для динамических процессов
Пример с JavaScript:
<progress id="pageLoader" value="0" max="100"></progress> <script> const loader = document.getElementById('pageLoader'); let progress = 0; const interval = setInterval(() => { progress += 5; loader.value = progress; if(progress >= 100) clearInterval(interval); }, 300); </script>

Тег <progress> предоставляет нативную, семантически правильную возможность отображения прогресса выполнения операций, улучшая пользовательский опыт при работе с длительными процессами.


Атрибуты

value Текущее значение прогресса
max Максимальное значение прогресса
class CSS-классы для стилизации
data-* Пользовательские данные
hidden Скрывает элемент
id Уникальный идентификатор
style Инлайновые стили
title Всплывающая подсказка

Поддержка браузерами

10.0 6.0 11.0 6.0 5.2