在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 来实现基本的表单校验,并为用户提供即时的视觉反馈。
网友回复


