:disabled伪类仅对原生表单元素生效,需配合disabled属性使用;禁用非表单元素应使用类名+pointer-events:none及aria-disabled。

直接用 :disabled 伪类就能给原生按钮设置禁用样式,关键是要匹配到真正带 disabled 属性的元素,而不是靠类名“假装”禁用。
:disabled 是浏览器原生支持的状态伪类,仅作用于 <button></button>、<input>、<select></select>、<textarea></textarea> 这类有 disabled 属性的表单元素。普通 <div> 或自定义组件加了 <code>disabled 属性也不会触发该伪类。
button:disabled { cursor: not-allowed; opacity: 0.6; }
div:disabled { ... }(浏览器完全忽略)浏览器默认的禁用样式很弱,用户容易误点。建议主动覆盖,从颜色、透明度、光标、边框、阴影几方面强化提示:
opacity: 0.5~0.7 降低整体明度,但别低于 0.4,否则影响可读性cursor: not-allowed,鼠标悬停时明确显示禁止符号#e0e0e0),文字色变浅(如 #999),避免用纯黑或高对比色box-shadow 和 border 的交互态效果(比如 hover 阴影、聚焦轮廓)CSS 只改外观,不阻止点击行为。必须同步操作 DOM 的 disabled 属性,才能让按钮既“看起来不能点”,也“实际点不动”:
立即学习“前端免费学习笔记(深入)”;
btn.disabled = true 或 btn.setAttribute('disabled', '')
btn.disabled = false 或 btn.removeAttribute('disabled')
.disabled)不会禁用表单提交或键盘聚焦,必须靠原生 disabled 属性如果禁用的是 <div>、<code><a></a> 或封装的组件按钮,就得换思路:
.btn--disabled
.btn--disabled { opacity: 0.6; cursor: not-allowed; pointer-events: none; }
pointer-events: none 是关键,它让元素彻底不响应任何鼠标事件(包括 click、hover、focus)tabindex="-1" 和 aria-disabled="true"
以上就是css按钮禁用状态怎么区分_使用disabled伪类设置样式的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号