1. 開発者向けのウェブ技術
  2. CSS: カスケーディングスタイルシート
  3. :valid

このページはコミュニティーの尽力で英語から翻訳されました。MDN Web Docs コミュニティーについてもっと知り、仲間になるにはこちらから。

View in English Always switch to English

:valid

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since ⁨2015年7月⁩.

:validCSS擬似クラスで、内容物の検証に成功した <input> 要素 やその他の <form> 要素を表します。これにより、有効な入力欄に、データの形式が適切であることをユーザーが確認しやすくなる外観を簡単に適用できるようになります。

css
/* 有効な <input> をすべて選択 */
input:valid {
 background-color: powderblue;
}

試してみましょう

label {
 display: block;
 margin-top: 1em;
}
input:valid {
 background-color: ivory;
 border: none;
 outline: 2px solid deepskyblue;
 border-radius: 5px;
 accent-color: gold;
}
<form>
 <label for="email">Email Address:</label>
 <input id="email" name="email" type="email" value="na@me@example.com" />
 <label for="secret">Secret Code: (lower case letters)</label>
 <input id="secret" name="secret" type="text" value="test" pattern="[a-z]+" />
 <label for="age">Your age: (18+)</label>
 <input id="age" name="age" type="number" value="5" min="18" />
 <label
 ><input name="tos" type="checkbox" required checked /> - Do you agree to
 ToS?</label
 >
</form>

この擬似クラスは、入力値が正しい入力欄をユーザーに強調表示するのに便利です。

構文

:user-valid

有効/無効なフォームフィールドを示す

この例では、このような構造を使用しています。この構造には、コンテンツを生成するための追加の <span> が含まれており、これらを使用して、データが有効であるか無効であるかの表示を提供します。

html
<div>
 <label for="fname">First name *: </label>
 <input id="fname" name="fname" type="text" required />
 <span></span>
</div>

これらの表示を提供するために、以下の CSS を使用します。

css
input + span {
 position: relative;
}
input + span::before {
 position: absolute;
 right: -20px;
 top: 5px;
}
input:invalid {
 border: 2px solid red;
}
input:invalid + span::before {
 content: "✖";
 color: red;
}
input:valid + span::before {
 content: "✓";
 color: green;
}

生成されたコンテンツを相対的に配置できるように <span>position: relative に設定します。そして、フォームのデータが有効か無効かに応じて、生成されるコンテンツを絶対位置指定で配置します。無効なデータには、さらに軽く緊急性を表すために、無効になったときに太い赤い枠線をつけています。

メモ: これらのラベルを追加するために ::before を使ったのは、すでに ::after を "required" ラベルに使っていたからです。

以下で試してみることができます。

[フレーム]

必須のテキスト入力は、空の状態では無効ですが、何かが記入されている状態では有効であることに注意してください。一方、 email の入力は、必須ではないため、空の場合は有効ですが、適切な email アドレスでないものが含まれている場合は無効となります。

アクセシビリティの考慮

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

仕様書

Specification
HTML
# selector-valid
Selectors Level 4
# valid-pseudo

ブラウザーの互換性

関連情報

Help improve MDN

Learn how to contribute

This page was last modified on by MDN contributors.

AltStyle によって変換されたページ (->オリジナル) /