皆さん、フォーム検証を行っていますか?クライアントまたはサーバー、JavaScript または JQuery、手書きまたはプラグインの使用。今日は、CSS セレクター レベル 4 のフォーム関連の疑似クラス セレクターを学習するために、純粋な CSS を使用してフォーム検証を実装する方法を検討します。
codepen にもコードを入れました。オンラインで学習したり、コレクション用にダウンロードしたりできます。
重要なのは、CSS セレクター レベル 4 でいくつかの疑似クラスを使用してフォーム検証を実装することです。
:valid と :invalid
<input type="name" required><input type="checkbox" required><input type="email" required><!-- and other input types as well.. --><textarea name="name" id="message" cols="30" rows="10" required></textarea><select name="nm" id="sel" required> <!-- options --></select>
/*可选表单样式*/input:optional,select:optional { border-right: 3px solid #888; background-color: #f8f8f8; color: #888; }/*必选表单样式*/input:required,textarea:required { border-right: 3px solid #aa0088; }/*可选表单提示文字*/input:optional+label::after{ content:"(可选)"; }/*必选表单提示文字*/input:required+label::after{ content:"(必填)"; }/*可选表单激活效果*/input:optional:focus,select:optional:focus { box-shadow: 0 0 2px 1px #aaa; }/*必选表单激活效果*/input:required:focus,select:required:focus,textarea:required:focus { outline: 0; box-shadow: 0 0 2px 1px #aa0088; }
これら 2 つの疑似クラスは、それぞれ範囲内と範囲外のフォーム属性値を選択します。これらの 2 つの疑似クラスは、数値範囲を受け入れる要素で使用できます。たとえば、タイプ番号が付いたフォームやスライダーなどです。ケースの効果については、上記の「ケースの説明」セクションで説明します。ここでは、2 つの疑似クラスの使用法を誰もが理解できるように、コア コードのみを示します。
input:out-of-range{ border: 1px solid tomato; }input:in-range~ label::after { content: "输入一个正确的从1到10的数字"; }input:out-of-range ~ label::after { content: "枣糕,你傻了!"; }
同様に、codepen では、オンラインで学習するか、コレクションをダウンロードしてください。次に、以下に示すように、コア コードを見ていきます。
input:invalid{ border: 1px solid tomato; }input:valid~ label::after { content: "耶,一个邮箱!"; }input:invalid ~ label::after { content: "枣糕,邮箱邮箱,是邮箱吗?"; }
次の要素は、:read-only 疑似クラスをアクティブ化できます。
contenteditable 属性を指定しないその他の要素
さらに読む
Codrops CSS リファレンス