:invalid

:invalidCSS擬似クラスで、 <input> 要素や <form> 要素のうち内容が検証に失敗したものを表します。

/* 無効な <input> を選択 */
input:invalid {
  background-color: pink;
}

この擬似クラスは、入力欄の現在の値が許可された範囲内にあることをユーザーに視覚的に示すのに便利です。

構文

:invalid

この例は、検証ができた要素を緑に色付け、検証ができなかった要素を赤に色付ける単純なフォームを表しています。

HTML

<form>
  <div class="field">
    <label for="url_input">URL を入力して下さい:</label>
    <input type="url" id="url_input">
  </div>

  <div class="field">
    <label for="email_input">メールアドレスを入力して下さい:</label>
    <input type="email" id="email_input" required>
  </div>
</form>

CSS

label {
  display: block;
  margin: 1px;  
  padding: 1px;
}

.field {
  margin: 1px;
  padding: 1px;
}

input:invalid {
  background-color: #ffdddd;
}

form:invalid {
  border: 5px solid #ffdddd;
}

input:valid {
  background-color: #ddffdd;
}

form:valid {
  border: 5px solid #ddffdd;
}
  
input:required {
  border-color: #800000;
  border-width: 3px;
}

input:required:invalid {
  border-color: #c00000;
}

結果

アクセシビリティの考慮

赤は入力が無効であることを示すためによく使われます。色盲の人によっては、それ以外の色によらない識別方法を伴わないと、入力状態が判別できないことがあります。通常、文字列やアイコンを使用して説明します。

ラジオボタン

グループのラジオボタンの1つがs required の場合、 :invalid 擬似クラスはグループ内のボタンが1つも選択されていない時に選択されます。(グループ化されたラジオボタンは同じ name 属性を共有しています。)

Gecko の既定値

既定で Gecko は :invalid 擬似クラスのスタイルを適用しません。しかし、 :invalid の場合のサブセットに適用される :-moz-ui-invalid 擬似クラスにスタイル(box-shadow プロパティを用いて赤く「伸びる」スタイル)を適用します。

仕様書

仕様書 状態 備考
HTML Living Standard
:invalid の定義
現行の標準 変更なし。
HTML5
:invalid の定義
勧告 HTML の意味論と制約検証を定義。
Selectors Level 4
:invalid の定義
草案 初回定義。

ブラウザーの互換性

Update compatibility data on GitHub
デスクトップモバイル
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewAndroid 版 ChromeAndroid 版 FirefoxAndroid 版 OperaiOSのSafariSamsung Internet
:invalidChrome 完全対応 10Edge 完全対応 12Firefox 完全対応 4IE 完全対応 10Opera 完全対応 10Safari 完全対応 5WebView Android 完全対応 37Chrome Android 完全対応 18Firefox Android 完全対応 4Opera Android 完全対応 10.1Safari iOS 完全対応 5Samsung Internet Android 完全対応 1.0
Applies to <form> elementsChrome 完全対応 40Edge 完全対応 79Firefox 完全対応 13IE 未対応 なしOpera 完全対応 27Safari 完全対応 9WebView Android 完全対応 40Chrome Android 完全対応 40Firefox Android 完全対応 14Opera Android 完全対応 27Safari iOS 完全対応 9Samsung Internet Android 完全対応 4.0

凡例

完全対応  
完全対応
未対応  
未対応

関連情報