在CSS中,:valid 和 :invalid 伪类可以用于表单元素的样式,以便根据表单输入的有效性动态地改变其外观。这些伪类通常与HTML5的表单验证属性(例如 required、pattern、type 等)结合使用。
以下是一个示例,展示如何使用 :valid 和 :invalid 伪类来实现表单校验:
HTML<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Form Validation Example</title> <link rel="stylesheet" href="styles.css"> </head> <body> <form> <label for="email">Email:</label> <input type="email" id="email" name="email" required> <br> <label for="password">Password:</label> <input type="password" id="password" name="password" pattern=".{6,}" required> <br> <input type="submit" value="Submit"> </form> </body> </html>CSS
/* 输入框默认样式 */ input { border: 2px solid #ccc; padding: 10px; font-size: 16px; margin-bottom: 10px; display: block; } /* 当输入框内容有效时 */ input:valid { border-color: green; } /* 当输入框内容无效时 */ input:invalid { border-color: red; } /* 提示用户输入无效信息时的样式 */ input:invalid:focus { background-color: #ffdddd; }解释
HTML 部分:
创建了一个简单的表单,包含电子邮件输入框和密码输入框。type="email" 确保输入的内容是一个有效的电子邮件地址。required 属性确保这些字段不能为空。pattern=".{6,}" 确保密码至少有6个字符长。CSS 部分:
使用 input:valid 伪类,当输入内容有效时,边框颜色变为绿色。使用 input:invalid 伪类,当输入内容无效时,边框颜色变为红色。使用 input:invalid:focus 伪类,当输入内容无效且输入框处于焦点状态时,背景颜色变为浅红色,以提示用户输入无效信息。通过这种方式,你可以使用纯 CSS 来实现基本的表单校验,并为用户提供即时的视觉反馈。
网友回复