Progress e meter

  1. O elemento progress
  2. O elemento meter

O elemento progress

O elemento <progress> é usado para representar o progresso de uma tarefa. Geralmente, é renderizado como uma barra de progresso. O atributo max é usado para indicar o valor máximo que representa o cumprimento da tarefa. Por padrão, ele é 1. O atributo value especifica quanto da tarefa foi feita em relação ao máximo. Deve ser um valor entre 0 e o valor máximo. Veja um exemplo de criação do elemento <progress>:

<progress value="40" max="100"></progress>

Você pode usar isso para representar o progresso de um projeto, por exemplo.

O elemento meter

Uma barra meter representa um valor fixo em um intervalo delimitado por valores min e max. Além desses valores, também devem ser fornecidos os atributos low e high. O valor low é o limite máximo para valores baixos. Já o valor high é o valor inicial de valores considerados altos. Há também o atributo optimum, que define um valor considerado ideal.

A barra do elemento <meter> pode ser dividida em 3 partes:

  • lower: representa a parte da barra que tem os valores considerados baixos. Vai do valor do atributo min até o valor do atributo low.
  • medium: representa os valores que estão na média. Vai do sucessor do low até o high.
  • higher: é composto pelos valores altos. Vai do sucessor do high até o max.

A aparência da barra depende do valor do atributo value, do atributo optimum e dos intervalos de valores das partes citadas acima. Se o value estiver na parte que tiver os valores ideais, a barra será verde. Se o valor estiver na parte dos valores medianos, ela será amarela. Se estiver na parte dos valores ruins, ela será vermelha. E, o que determina se uma parte tem valores ideais, medianos ou ruins? Uma relação entre o valor optimum e os intervalos de valores citados:

  • Se o valor optimum estiver na parte lower, os valores dessa parte serão os ideais, os valores da parte medium serão medianos, e os valores da parte higher serão ruins.
  • Se o valor optimum estiver na parte medium, os valores dessa parte serão os ideais, e os valores da parte lower e higher serão medianos.
  • Se o valor optimum estiver na parte higher, os valores dessa parte serão os ideais, os valores da parte medium serão medianos, e os valores da parte lower serão ruins.

Confuso? Para simplificar, você pode pensar assim: a parte onde o valor optimum está sempre terá os valores ideais. As outras partes serão medianas se estiverem ao lado dela. Caso contrário, elas serão ruins.

Veja um exemplo do elemento <meter>, que pode ser usado para representar, por exemplo, quantos GB da franquia de dados já foram usados:

<meter min="0" max="150" value="80" low="30" high="100" optimum="0">80</meter>
80

Note que o valor foi colocado tanto no atributo value, como também no conteúdo do elemento. Isso é porque ele é um fallback para browsers que não suportam o elemento e também porque é mais amigável para leitores de tela.