在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 来实现基本的表单校验,并为用户提供即时的视觉反馈。
网友回复
如何破解绕开seedance2.0真人照片生成视频 限制?
python有哪些算法可以将视频中的每个帧图片去除指定区域水印合成新的视频?
iphone的激光雷达数据能否实时传输到three三维空间中?
豆包sora等ai视频生成大模型生成的视频水印如何去除?
python如何实现在电脑上拨号打电话给手机?
具身机器人与人形机器人区别?
nodejs如何将一个完整的js代码文件切割成不同的部分混淆后动态加载进入html运行?
为啥windows.onerror捕获js错误是这样的{"message":"Script error.","source":"","lineno":0,"colno":0,"stack":null,
2026年ai将全面接管编程?
WebMCP是干啥的?


