跳转到主内容
websoft网络软件专家 - 深耕网络技术,打造实用软件!

CSS如何禁止用户选中文本_使用user-selectnone属性

Chrome、Firefox、Safari(10.1+)、Edge(12+)均支持 user-select: none;Safari 旧版本(<10.1)不支持或仅部分支持该属性。 user-select: none 在哪些浏览器里真正生效 Chrome、Firefox、Safari(10.1+)、Edge(12+)都支持
user-select: none
,但 Safari 旧版本(-ms-user-select: none 前缀才管用。如果你的用户还有大量 IE11 或老版 macOS 用户,光写标准属性会失效。 必须同时写
user-select: none
和
-ms-user-select: none
才能覆盖 IE11 Safari 9 及更早版本对
user-select
完全无视,只能靠 JS 拦截
selectstart
事件补救 移动端 iOS Safari 对
user-select: none
的响应有延迟,长按后仍可能短暂高亮 为什么给 div 加了 user-select: none 还能被选中 常见原因是样式没生效或被更高优先级规则覆盖。比如父元素设了
user-select: text
,子元素即使写了
none
也会继承 ——
user-select
是可继承属性,不是自动“穿透”的。 检查 computed styles,确认目标元素上实际生效的是
none
,而不是 inherited 或 unset 避免依赖继承:直接在目标元素上写
user-select: none
,别只写在父级 如果用了 CSS-in-JS 或 scoped style(如 Vue),注意选择器权重是否足够,有时需要加
!important
(虽然不推荐,但这里实用) 某些富文本编辑器(如 Quill、Tiptap)会主动重置该样式,得在它们的 class 上再覆盖一遍 禁用选中后,input 和 textarea 里的文字也选不了怎么办
user-select: none
是全局生效的,一旦父容器设了它,里面的
、