Тег <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 Максимальное значение прогресса
accesskey Горячая клавиша для активации
class CSS-классы для стилизации
contenteditable Разрешает редактирование
data-* Пользовательские данные
dir Направление текста
hidden Скрывает элемент
id Уникальный идентификатор
lang Язык содержимого
spellcheck Проверка орфографии
style Инлайновые стили
tabindex Порядок перехода
title Всплывающая подсказка
translate Определяет возможность перевода

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

10.0 6.0 11.0 6.0 5.2