+
95
-

回答

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

网友回复

我知道答案,我要回答