<input type=range>は、レンジ入力欄を表す際に使用します。
input要素のtype属性の値に range を指定すると、
要素の値はレンジ内の数値を表す文字列を表します。
type=rangeで指定するのは正確さを重視した数値ではなく、
一定の範囲内における「このくらい」という感覚で入力する数値です。
以下のサンプルでは、value属性の値がそれぞれ51と49に指定されていますが、
step属性の値が20なのでステップの不一致が発生しています。
この場合、最も近い数値に丸められるため、上の初期値は60、下の初期値は40に設定されます。
<p><input type="range" min=0 max=100 step=20 value=51></p>
<p><input type="range" min=0 max=100 step=20 value=49></p>
以下のサンプルは、input要素にlist属性を指定して、
datalist要素によるオートコンプリートリストを適用した使用例です。
<input type="range" name="a" list="a-values">
<datalist id="a-values">
<option value="10" label="Low">
<option value="90" label="High">
</datalist>
input type=rangeの場合、value属性のデフォルト値は、最小値に最小値と最大値の差の半分を加えた値です。
デフォルト値 = 最小値 + (最大値 – 最小値) / 2 なので、デフォルト値は 70
ただし、最大値として指定した値が最小値より小さい場合には、最小値がデフォルト値になります。
最小値 > 最大値 なので、デフォルト値は 40
筆者の閲覧環境では想定した表示になりませんでしたが、参考までにサンプルソースを掲載します。
<p><input type="range" min=40 max=100></p>
<p><input type="range" min=40 max=20></p>
<p><input type="range" value="70"></p>
<p><input type="range" value="40"></p>
HTMLの仕様では、input要素には終了タグ</input>はありません。