Кратко
СкопированоТег <meter>
нужен для визуального отображения числового значения в заданном диапазоне. Браузеры отрисовывают его в виде прогресс-бара.
У тега по умолчанию есть роль meter
. Это делает его полезным для скринридеров. Они будут рассказывать пользователям, что это за элемент, и какое у него текущее значение.
Пример
Скопировано<p> Капибара победила в выборах с результатом <meter min="3" max="10" value="6"></meter></p>
<p> Капибара победила в выборах с результатом <meter min="3" max="10" value="6"></meter> </p>
Как пишется
Скопировано<meter>
— парный тег, который нужно закрывать. Внутрь тега можно вкладывать только текстовое содержимое. Это необязательно делать, но рекомендуется, если поддерживаете старые браузеры.
<p> Капибара победила в выборах с результатом <meter min="3" max="10" value="6"> 60% </meter></p>
<p> Капибара победила в выборах с результатом <meter min="3" max="10" value="6"> 60% </meter> </p>
У тега может быть подпись. Лучше всего добавлять её с помощью старого-доброго <label>
.
<label for="temp">Температурный рекорд в Сеуле:</label><meter id="temp" min="10" max="29.6" value="29.6">+ 29.6°С</meter>
<label for="temp">Температурный рекорд в Сеуле:</label> <meter id="temp" min="10" max="29.6" value="29.6">+ 29.6°С</meter>
<meter>
визуально заполняется в зависимости от значения атрибута value
. По умолчанию раскрашен в системные цвета Windows, macOS и других операционных систем.
Хотя <meter>
визуально похож на <progress>
, его используют для других целей:
- доступное место на диске;
- результаты голосования;
- распределение других результатов.
Реальный пример, где хорошо подошёл бы <meter>
, — шкала с используемыми в проекте языками на GitHub.
Имейте в виду, что в случае <meter>
всегда известны минимальное и максимальное значения. Так что не стоит использовать тег для диапазонов с неизвестным max
.
Атрибуты
СкопированоУ <meter>
есть несколько атрибутов. Все значения числовые и могут быть целыми (1), дробными (0.1 или .1), положительными (2) и отрицательными (-2).
value
— текущее значение. По умолчанию0
. Должно быть в диапазоне между значениямиmin
иmax
.min
— нижняя граница диапазона. По умолчанию0
. Должно быть ниже значенияmax
.max
— верхняя граница диапазона. По умолчанию1
. Должно быть выше значенияmin
.low
— определяет, что считать нижним значением. По умолчанию равно значениюmin
. Должно быть выше или равно значениюmin
и меньшеhigh
иmax
.high
— определяет, что считать высшим значением. По умолчанию равно значениюmax
. Должно быть меньше или равно значениюmax
и вышеlow
иmin
.optimum
— оптимальное значение. Должно быть в диапазоне между значениямиmin
иmax
.form
— дополнительный атрибут для связи формы со счётчиком, когда он не вложен внутрь<form>
.
В демке собраны разные варианты стилей <meter>
по умолчанию.
<meter class="meter" min="1" max="10"></meter><meter class="meter" min="1" max="10" low="2" value="3"></meter><meter class="meter" min="1" max="10" low="2" high="5" optimum="8" value="3"></meter><meter class="meter" min="1" max="10" value="5"></meter><meter class="meter" low=".25" optimum=".15" high=".75" value=".5"></meter><meter class="meter" low=".25" optimum=".2" high=".75" value=".8"></meter><meter class="meter" value="1"></meter>
<meter class="meter" min="1" max="10"> </meter> <meter class="meter" min="1" max="10" low="2" value="3"> </meter> <meter class="meter" min="1" max="10" low="2" high="5" optimum="8" value="3"> </meter> <meter class="meter" min="1" max="10" value="5"> </meter> <meter class="meter" low=".25" optimum=".15" high=".75" value=".5"> </meter> <meter class="meter" low=".25" optimum=".2" high=".75" value=".8"> </meter> <meter class="meter" value="1"> </meter>
Попробовать как изменяется внешний вид тега в зависимости от выбранных значений можете в этой песочнице. По мотивам примера «HTML5 Meter Element» Панкаджа Парашара.
Стили
СкопированоЧтобы стилизовать <meter>
так, как требует душа художника, понадобятся вендорные префиксы.
:
— стили самого: - webkit - meter - bar <meter>
. Для Firefox можно просто стилизовать<meter>
без префиксов.:
— стили для индикаторов внутри: - moz - meter - bar <meter>
.:
— цвет фона для значения внутри диапазона: - webkit - meter - optimum - value low
иhigh
. По умолчанию красится в зелёный.:
— цвет фона для положительного значения за пределами диапазона: - webkit - meter - suboptimum - value low
иhigh
. По умолчанию жёлтый.:
— цвет фона для отрицательного значения за пределами диапазона: - webkit - meter - even - less - good - value low
иhigh
. По умолчанию красный.
Давайте поиграем с цветами 👨🎨 К сожалению, в Firefox не получится навести красоту.
meter { width: 400px; height: 50px;}meter::-webkit-meter-bar { background: transparent; border: 0;}meter::-webkit-meter-optimum-value { background-image: linear-gradient( 90deg, #FF8630 55%, #2E9AFF 55% );}
meter { width: 400px; height: 50px; } meter::-webkit-meter-bar { background: transparent; border: 0; } meter::-webkit-meter-optimum-value { background-image: linear-gradient( 90deg, #FF8630 55%, #2E9AFF 55% ); }