使用 :focus 伪类可选中处于焦点状态的输入框,支持按类型、class、id 或结构进一步限定,常用于提升表单交互体验,建议保留可访问性并合理使用样式替代 outline。

要选择处于 focus 状态的输入框,可以使用 css 的 :focus 伪类选择器。这个选择器能匹配用户正在输入或激活的表单元素,比如 input、textarea 等。
基本语法
直接在输入框元素后加上 :focus 即可定义获得焦点时的样式:
input:focus {<br> outline: 2px solid blue;<br> border-color: #007acc;<br>}
针对特定类型的输入框
如果只想选中某种类型的输入框(如文本框、邮箱、密码框),可以结合 type 属性:
input[type="text"]:focus { border: 1px solid green; }input[type="email"]:focus { background-color: #f0f8ff; }input[type="password"]:focus { box-shadow: 0 0 5px red; }
更精确的选择方式
你也可以通过 class、id 或父级结构进一步限定范围:
- 按 class:
.form-input:focus { outline: none; } - 按 id:
#username:focus { font-weight: bold; } - 嵌套选择:
form.login input:focus { border-bottom: 2px solid purple; }
常见用途和建议
:focus 常用于提升表单的可用性和用户体验。注意以下几点:
- 不要随意移除默认 outline,否则会影响键盘导航的可访问性
- 若想自定义焦点样式,建议用 box-shadow 或 border 替代 outline
- 可配合 transition 实现平滑的焦点动画效果
基本上就这些。使用 :focus 是控制输入框聚焦状态最直接有效的方式,灵活组合其他选择器能精准控制样式表现。不复杂但容易忽略细节,比如可访问性问题。


