如何通过css:focus实现输入框高亮样式

使用 :focus 伪类可实现输入框聚焦高亮,通过 border-color、box-shadow 和 transition 等属性提升交互体验,同时需注意保留 outline 以保障可访问性。

当用户点击或使用Tab键聚焦到输入框时,可以通过 :focus 伪类来触发样式变化,实现高亮效果。这是提升表单交互体验的常用方法。

基本语法与作用

:focus 是CSS中的一个伪类,用于选中获得焦点的表单元素,比如 input、textarea 等。一旦用户激活该元素,设定的样式就会立即生效。

常见用法如下:

input:focus {
  border-color: #007bff;
  outline: none;
  box-shadow: 0 0 5px rgba(0, 123, 255, 0.5);
}

关键样式属性说明

通过组合几个CSS属性,可以让输入框的高亮更明显且美观:

  • border-color:改变边框颜色,直观提示当前操作的输入框
  • outline:浏览器默认会有蓝色外框,设为 none 可自定义样式,但注意可访问性
  • box-shadow:添加发光或阴影效果,增强视觉反馈
  • transition:加入过渡动画,使样式变化更平滑

完整示例代码

以下是一个实用的高亮样式写法:

input {
  padding: 10px;
  border: 2px solid #ccc;
  border-radius: 4px;
  transition: all 0.3s ease;
}

input:focus {
  border-color: #007bff;
  box-shadow: 0 0 8px rgba(0, 123, 255, 0.3);
  outline: none;
}

这样在聚焦时,输入框会平滑地变为蓝色边框并带有光晕效果。

注意事项

移除 outline 虽然能让设计更整洁,但可能影响键盘用户的可访问性。如需保留可用性,可自定义 outline 样式代替完全去除:

input:focus {
  outline: 2px solid #007bff;
  outline-offset: 2px;
}
基本上就这些,不复杂但容易忽略细节。