:disabled伪类可直接为原生表单控件(button、input等)设置禁用样式,无需JS,属性变化即生效;需配合opacity、cursor等增强辨识度;非原生元素需自定义类名+pointer-events+aria-disabled。
直接用 :disabled 伪类就能给原生按钮设置禁用样式,前提是 HTML 中确实加了 disabled 属性。它不依赖 JavaScript,样式会随属性开关自动切换,简单又可靠。
只需在选择器后加上 :disabled,即可定义禁用时的外观:
button:disabled 专门作用于带 disabled 属性的
input、select、textarea 等button:disabled {
background-color: #e0e0e0;
color: #999;
cursor: not-allowed;
opacity: 0.6;
}
浏览器默认禁用样式太弱,用户容易忽略。建议主动优化视觉反馈:
opacity 或调整背景/文字色,削弱对比度cursor: not-allowed,明确提示不可操作box-shadow、transform),避免误导button[disabled]
想只为“能点”的按钮加动效或阴影?用 :not(:disabled) 精准排除:
button:not(:disabled):hover { box-shadow: 0 2px 6px rgba(0,0,0,0.15); }button:not(:disabled):focus
:disabled 只对原生表单控件有效。遇到 、 或封装过的组件,得换方法:
.btn--disabled
pointer-events: none 彻底屏蔽点击(注意:这不影响键盘焦点)aria-disabled="true" 提升无障碍体验(语义 ≠ disabled,但配合使用更规范)