:focus伪类配合box-shadow可实现输入框聚焦光晕效果,推荐用rgba色值与8–20px模糊半径营造通透感,支持多层阴影增强立体感,并需清除outline、适配深色背景及移动端,辅以transition提升动效流畅性。
直接用 :focus 伪类配合 box-shadow 就能实现输入框聚焦时的光晕效果,简单高效,兼容性也好。
这是最常用也最稳妥的方式,重点是控制阴影的模糊半径和颜色透明度:
rgba() 或 hsla() 配色,比如 rgba(0, 120, 255, 0.3),让光晕有通透感
避免写硬边阴影,别用 0 0 0 2px #0078ff 这种纯色描边,它不是光晕input:focus {
outline: none;
box-shadow: 0 0 12px rgba(0, 120, 255, 0.4);
}
单层阴影有时显得单薄,叠加两层可让光晕更自然:
input:focus {
outline: none;
box-shadow:
0 0 4px rgba(0, 120, 255, 0.5),
0 0 16px rgba(0, 120, 255, 0.2);
}
光晕再好看,也不能牺牲体验:
outline,否则 Safari/Chrome 可能双轮廓并存box-shadow 渲染略保守,可适当加大模糊值聚焦/失焦瞬间加个渐变过渡,观感更专业:
transition: box-shadow 0.2s ease 即可outline,它本身不支持平滑变化transition 声明input {
transition: box-shadow 0.2s ease;
}
input:focus {
outline: none;
box-shadow: 0 0 12px rgba(0, 120, 255, 0.4);
}
基本上就这些。光晕效果不复杂但容易忽略细节,关键是阴影要“软”、颜色要“透”、动效要“稳”。