CSSの:invalidセレクターで無効な値を持つinput要素にスタイルを適用する方法
無効な値が入力されたすべての<input>要素にスタイルを設定するには、CSSの:invalidセレクターを使用します。
:invalidセレクターの基本
:invalidセレクターは、HTML5のフォームバリデーション機能と連動し、入力内容が条件を満たしていない要素(必須項目が空欄、メールアドレスの形式が不正など)にのみスタイルを適用します。JavaScriptを書かずに済むため、フォームの入力チェックUIを手軽に実装できるのが大きなメリットです。なお、逆に有効な入力へスタイルを付けたい場合は:validセレクターを使用します。
実装例
以下のコードを実行して、:invalidセレクターの動作を確認してみましょう。
<!DOCTYPE html>
<html>
<head>
<style>
input:invalid {
background: red;
}
</style>
</head>
<body>
<h2>見出し</h2>
<input type="email" value="InvalidEmail">
<p>不正な形式・無効なメールアドレスを入力すると、スタイル(赤い背景色)が適用されます。</p>
</body>
</html>
このサンプルでは、type="email"が指定された入力フィールドに対し、メールアドレスとして無効な値が入力されると背景色が赤に変わります。
押さえておきたいポイント
- ページ読み込み時点でvalue属性の初期値が無効な場合、その瞬間からスタイルが適用されます。
- ユーザーが誤った値を入力したタイミングで即座に視覚的フィードバックを返せるため、フォームのユーザビリティ向上につながります。
- 色だけでなく、枠線やアイコン表示などと組み合わせると、より分かりやすいエラー表示が可能です。
-
CSSでinput要素のプレースホルダーテキストをスタイリングする方法
HTMLの<input>要素のプレースホルダー(placeholder)テキストをCSSでカスタマイズするには、擬似要素(pseudo-element)をターゲットに指定する必要があります。これを実現するのが、CSSの擬似セレクターである::です。 通常のinput要素とプレースホルダーテキスト まずは、プレースホルダー付きのシンプルなinput要素を見てみましょう。 ブラウザのデフォルトスタイルでは、プレースホルダーテキストは次のように表示されます。 CSSでプレースホルダーの色を変更する それでは、::placeholderセレクターを使って、プレースホルダーのテキストを赤
-
CSSの:validセレクターで有効な値を持つinput要素をスタイリングする方法
CSSの:validセレクターを使用すると、有効な値が入力されたすべての<input>要素に対してスタイルを適用できます。 :validセレクターとは :validセレクターは、フォームの入力内容がバリデーション(妥当性チェック)を通過した場合にのみスタイルを適用する擬似クラスです。たとえば、type=emailの入力欄に正しい形式のメールアドレスが入力されたときだけ、背景色や文字色を変えるといった使い方ができます。逆に、無効な値が入力された場合にスタイルを適用したい場合は「:invalid」セレクターを使用します。両者を組み合わせることで、ユーザーに入力の正誤を視覚的にフィードバ