使用:invalid伪类可实现表单输入实时验证,结合border-color改变边框颜色提示错误。通过:not(:placeholder-shown)避免占位符显示时误触红框,用户输入非法内容即时显示红色边框,合法则变绿。添加transition使颜色变化平滑,:focus增强错误提示,基础场景无需JavaScript即可完成良好交互体验。
在网页表单中,使用 :invalid 伪类结合 border-color 是提示用户输入错误的常用方式。它无需 JavaScript 即可实现基础的实时验证反馈。
当输入内容不符合规则时,元素会
匹配 :invalid 状态,此时可以设置特定样式,比如红色边框,提醒用户修正。
使用 :not(:placeholder-shown) 可以排除占位符显示时(即用户尚未输入)的状态,只在用户开始输入但内容错误时才显示错误样式。
配合 :focus 在聚焦错误字段时加强提示,比如加深红或添加浅红阴影。
对于高级需求(如失去焦点后才提示),可结合 JS 添加自定义类,但纯 CSS 的 :invalid 方案已能满足很多场景。
基本上就这些。不复杂但容易忽略细节。