1.

HTML <meter> 要素の使い方と progress との違い(CSS でのスタイル)

編集
この記事の要点
  • 既知の範囲内の現在値を表すゲージ(ディスク使用率、進捗ではない既知の量)
  • 基本:
  • low / high / optimum 属性で「低すぎ・高すぎ・最適」のしきい値を指定 → ブラウザが色を変える
  • はタスクの進捗用(不確定状態あり)。 とは用途が違う
  • スタイルは Webkit (::-webkit-meter-*) と Firefox (::-moz-meter-bar) で別々の擬似要素を持つ

の基本

HTML5 の 要素は、ディスク使用量、テストの点数、室温、株価のレンジ内など、既知の範囲内での現在値を視覚的に表すための要素です。


70%


70 / 100





3

属性一覧

属性意味既定
value現在値(必須)0
min下限0
max上限1
low「低すぎ」と見なすしきい値min
high「高すぎ」と見なすしきい値max
optimum最適値(low/high の関係で色決定)中央
form所属するフォーム ID-

low / high / optimum と色

ブラウザは value がどのゾーンに入るかで色を変えます:

optimum の位置value < lowlow ≤ value ≤ highvalue > high
low より下緑(最適に近い)
low ≤ optimum ≤ high緑(最適)
high より上緑(最適に近い)

気温(最適 22 度)

10°C 22°C 35°C

テスト点数(最適 100 点 = high より上が良い)

40 点 90 点

との違い

項目
用途既知の範囲内の現在値タスクの進捗
ディスク使用率、点数、燃料残量ファイル DL 率、フォーム送信中
不確定状態無しあり(value 省略)
low / high / optimumあり無し
ARIA rolemeterprogressbar

SSD 62% 使用中


30%


CSS でのスタイル

残念ながら のスタイルはブラウザごとに別々の擬似要素を使います。

/* 共通: サイズや角丸など */
meter {
  width: 240px;
  height: 1em;
}

/* WebKit / Chrome / Safari / Edge */
meter::-webkit-meter-bar {
  background: #eee;
  border-radius: 0.5em;
  border: 1px solid #ccc;
}
meter::-webkit-meter-optimum-value { background: #4caf50; }
meter::-webkit-meter-suboptimum-value { background: #ff9800; }
meter::-webkit-meter-even-less-good-value { background: #f44336; }

/* Firefox */
meter::-moz-meter-bar {
  background: #4caf50;
}
meter:-moz-meter-sub-optimum::-moz-meter-bar { background: #ff9800; }
meter:-moz-meter-sub-sub-optimum::-moz-meter-bar { background: #f44336; }

JavaScript API

const m = document.querySelector('meter');

m.value = 80;
m.min = 0;
m.max = 100;
m.low = 30;
m.high = 70;
m.optimum = 50;

// 値の確認
console.log(m.value, m.labels);  // 値 + 関連 

アクセシビリティ

はネイティブで ARIA role meter を持ち、スクリーンリーダーが現在値・最大値を読み上げます。ただし古いリーダーは未対応のことも多いので、ラベルやテキスト説明を併用しましょう:


62%


[ゲージ非対応のため: 50%]

使うべき場面・避けるべき場面

用途適切?
ディスク / メモリ使用率★ ピッタリ
燃料残量、バッテリー★ ピッタリ
テスト点数 / スコア★ 適切
パスワード強度○ 使える
ファイルダウンロード進捗
装飾的なバーグラフ
+ CSS で

FAQ

Q: ブラウザ対応は?
A: Chrome / Firefox / Safari / Edge いずれも対応済。IE は非対応 → フォールバックテキストでしのいでください。

Q: 色を完全に統一したい
A: ブラウザ間で擬似要素が違うのでフルカスタマイズは大変。妥協できないなら

+ CSS で自前バーを作る方が早いです。

Q: 単位を付けたい
A: 自体には単位属性は無いので、隣にテキストとして書きます: 62 GB

編集
Post Share
子ページ

子ページはありません

同階層のページ
  1. meter要素 / meter
  2. progress要素
  3. datalist要素でオートコンプリート候補を表示する
  4. input要素
  5. output要素
  6. keygen要素

最近更新/作成されたページ