表单输入框聚焦高亮应使用:focus伪类,通过border、box-shadow和transition实现视觉反馈,同时用:focus-visible或统一outline保障键盘可访问性;:focus-within可扩展至容器级高亮。
给表单输入框添加聚焦高亮,核心是用 :focus 伪类设置边框、阴影或背景等视觉反馈,让用户清楚当前操作的是哪个字段。
默认情况下,多数浏览器会在输入框获得焦点时显示一个细虚线轮廓(outline),但不够明显且风格不统一。建议用 border 和 box-shadow 替代或增强:
outline: none;(注意需保留键盘可访问性,见下文)border: 2px solid #4d90fe;
box-shadow: 0 0 5px rgba(77, 144, 254, 0.3);
完全去掉 outline 可能影响键盘 Tab 导航体验。更稳妥的做法是「替换」而非「删除」:
input:focus:not(:focus-visible) { outline: none; }
input:focus { outline: 2px solid #4d90fe; outline-offset: 2px; }
突兀的样式切换会显得生硬。加上 transition 让高亮渐变出现:
transition: border-color 0.2s ease, box-shadow 0.2s ease;textarea、select、button)都建议统一处理
合 :focus-within 实现容器高亮当输入框嵌套在标签或卡片内时,想让整个容器响应聚焦,可用 :focus-within:
.form-group:focus-within { background-color: #f8f9fa; border-left: 3px solid #4d90fe; }