HTML 属性: step

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.

step 属性は、が従わなければならない刻み値を指定する数値、またはキーワード any です。数値の入力型、たとえば date, month, week, time, datetime-local, number, range 型に有効です。

step は、スピナーボタンを上下にクリックしたり、範囲上でスライダーを左右に動かしたり、異なる日付タイプを検証したりする際の刻み間隔を設定します。明示的に指定されていない場合、 step の既定値は、 numberrange の場合は 1、日付/時刻入力型の場合は1単位 (分、週、月、日) になります。値は正の整数または浮動小数点数、または刻みが指定されておらず、 (minmax のような他の制約を除いて) すべての値が可能であることを意味する特別な値 any のいずれかでなければなりません。

number 入力型の既定の刻み値は 1 で、刻みの基底値が整数でない場合を除き、整数のみを入力することができます。 time の既定の刻み値は 1 秒で、 900 は15分と等しくなります。

構文

step の既定値
入力型 構文
date 1 (日) <input type="date" min="2019-12-25" step="1">
month 1 (月) <input type="month" min="2019-12" step="12">
week 1 (週) <input type="week" min="2019-W23" step="2">
time 60 (分) <input type="time" min="09:00" step="900">
datetime-local 1 (日) <input type="datetime-local" min="2019-12-25T19:30" step="7">
number 1 <input type="number" min="0" step="0.1" max="10">
range 1 <input type="range" min="0" step="2" max="10">

any が明示的に設定されていない場合、 number, 日付/時刻入力型, range の入力型で有効な値は、刻みの基底値と等しくなります。 - min の値と、それに step の値を max の値 (指定されている場合) まで加えていった値です。以下の例では、 10 以上のあらゆる偶数の整数が有効となります。

html
<input type="number" min="10" step="2" />

step が省略された場合、任意の整数が有効ですが、step が既定で 1 に設定されているため、4.2 のような実数は無効です。 4.2 が有効であるためには、

  • stepany, 0.1, 0.2 のいずれかに設定されているか、
  • min の値が .2 で終わる数値、例えば 0.2, 1.2, -5.2 などである必要があります。

min の step への影響

min の値は、 step 属性がなくても有効な値を定義します。これは step の既定値が 1 であるからです。

無効な入力の周囲に太く赤い境界を追加します。

css
input:invalid {
  border: solid red 3px;
}

それから入力欄の最小値を 1.2 と定義し、 step の値を 2 に定義します。

html
<input id="myNumber" name="myNumber" type="number" step="2" min="1.2" />

有効な値は、 1.2, 3.2, 5.2, 7.2, 9.2, 11.2 などになります。整数部が奇数で小数部が .2 の実数のみが有効です。数値スピナーを表示している場合は、 1.2 以上の実数を 2 ずつ増加した値を生成します。

メモ: ユーザーが入力したデータが刻みの設定に従っていない場合、制約検証では無効とみなされ、 :invalid:out-of-range の擬似クラスに一致します。

詳しくはクライアント側制約検証stepMismatch を参照してください。

アクセシビリティの考慮

ユーザーがフォームに記入したり、個々のフォームコントロールを使用するのに役立つ説明を提供してください。必須の入力、任意の入力、データの書式、その他の関連する情報を示してください。 min 属性を使用する場合は、この最大値の要件がユーザーに理解されていることを確認してください。 <label> 内で指示を提供すれば十分かもしれません。ラベルの外に指示を提供すれば、より柔軟な配置やデザインが可能になるので、 aria-labelledby または aria-describedby を使用することを検討してください。

仕様書

Specification
HTML Standard
# attr-input-step

ブラウザーの互換性

BCD tables only load in the browser

関連情報