user-select 用户禁止选中
我们在页面输入的文本按理来说应该都是可以选中的,但是如何才能让显示出来的文本或是图片不被选中呢,这时候就需要用到 user-select 属性。
user-select
user-select (CSS属性),控制着用户能否选中文本。除了在文本框中,在 Chrome浏览器中对已经加载的文本没有影响。
一、语法:
user-select:none / text / all / element / auto
user-select 属性的默认值为 text,没有继承性,适用于替换元素外的所有元素。
二、属性值:
none:文本不能被选中。注意这个 Selection 对象包含这些元素。从 Firefox21 开始,none表现的想 -moz-none,因此可以使用 -moz-user-select :text 在子元素上重新启用选择。
text:默认值,可以选中文本
all:当所有内容可以作为一个整体被选择。(如果双击或是在上下文上点击子元素,那么包含该元素的子元素也将被选中。)
element:可以选择文本,但是选择范围受元素边界的约束
auto:auto的计算值确定如下:
- 在::before 和 ::after 伪元素上,计算的属性是 none
- 如果元素是可编辑元素,则计算值是 contain
- 否则,如果此元素的父元素的 user-select 的计算值为 all,则计算值为 all
- 否则,如果此元素的父级上的 user-select 的计算值为 none,则计算值为 none
- 否则,计算值则为 text
注:Selection对象表示用户选择的文本范围或插入符号的当前位置。它代表页面中的文本选区,可能横跨多个元素。文本选区由用户拖拽鼠标经过文字而产生。
注意:在不同浏览器之间实现的一个区别是继承。 在Firefox中,-moz-user-select不会被绝对定位的元素继承,但在Safari和Chrome中,-webkit-user-select由这些元素继承。
三、设置或检索是否允许用户选中文本
IE6-9不支持该属性,但是支持使用标签属性 onselecstart = 'return false;' 来达到 user-select: none 的效果。Safari 和 Chrome 也支持该标签属性。
直到Opera12.5 仍然不支持该属性,但是和 IE6-9一样,也支持私有的标签属性 unselectable = 'on' 来达到 user-selector:none 的效果;unselectable 的另外一个值是 off;
除了 Chrome 和 Safari外,和在其他浏览器中,如果将文本设置为 -ms-user-select:none; 则用户将无法在该文本块中开始选择文本。不过,如果用户在页面的其他区域开始选择文本,则用户仍然可以继续选择将文本设置为 -ms-user-select:none; 的区域文本。
四、浏览器兼容性:

红色:no supported (不支持)
绿色:supported (支持)
绿色有黄色标识:supported width prefix (支持但需要前缀)
五、实例:
HTML
<p>你应该可以选中这段文本。</p>
<p class="unselectable">你不能选中这段文本!</p>
CSS
.unselectable {
-moz-user-select: none;
-webkit-user-select: none;
-ms-user-select: none;
user-select: none;
}
参考资料:
https://developer.mozilla.org/zh-CN/docs/Web/CSS/user-select
https://www.html.cn/book/css/properties/user-interface/user-select.htm#a3
user-select 用户禁止选中的更多相关文章
- h5 安卓/IOS长按图片、文字禁止选中或弹出系统菜单 的解决方法
最近在做IM的语音功能,发现当长按录音的时候手机会弹出来系统菜单, IOS下bug形式:1)长按的标签设置为css background的形式:不会弹出菜单: 2)但是当设置为img时,系统默认识别为 ...
- 下拉框——把一个select框中选中内容移到另一个select框中遇到的问题
在使用jQuery实现把一个select框中选中内容移到另一个select框中功能时遇到了一个问题,就是点击按钮时内容可以到另一个select框中,但是到了另一个select框中的内容却很快闪退回原来 ...
- js禁止选中(网页复制)
document.onselectstart=new Function("event.returnValue=false");//禁止选中(无法复制) document.oncon ...
- PyQt:自定义QLineEdit禁止选中复制粘贴
说明 自定义的QLineEdit,当输入文本之后,禁止选中复制粘贴等操作 实现方法 MyQLineEdit类继承了QLineEdit类,并重写QLineEdit类中的mouseMoveEvent方法和 ...
- css 禁止选中文本
css 如何禁止选中文字 .noselect { -webkit-touch-callout: none; /* iOS Safari */ -webkit-user-select: none; /* ...
- select 下拉选中
<body> <select name="" id=""> <option value="">张三< ...
- 用户禁止cookie后,如何继续使用session
(1)如果用户禁止cookie,服务器仍会将sessionId以cookie的方式发送给浏览器,但是,浏览器不再保存这个cookie(即sessionId)了. (2)如果想继续使用session,需 ...
- 【TP3.2+onethink】radio+checkbox+select 空间 编辑页面选中,附录 js 返回上一页
1.TP3.2框架 如何实现 [radio+checkbox+select 空间 编辑页面选中],说实话,比较繁琐,不咋地!! 不废话,上代码:(其中 XX_arr 变量一维数组) <div ...
- 禁用表单元素 && 禁止选中
一.禁用表单元素 1.dom设置属性 disabled="disabled" || disabled=true 2.css样式(高版本浏览器) pointer-events:non ...
随机推荐
- jmeter性能测试重要指标以及性能结果分析
一.Aggregate Report 是 JMeter 常用的一个 Listener,中文被翻译为“聚合报告 如果大家都是做Web应用的性能测试,例如只有一个登录的请求,那么在Aggregate Re ...
- FPGA —— Quartus II 15.0 使用 ModelSim SE-64 2019.2 软件进行仿真
Quartus II 15.0 使用 ModelSim SE-64 2019.2 软件进行仿真 ModelSim 仿真 Verilog HDL 时需要编写一个 TestBench 仿真文件,通过仿真文 ...
- BUUOJ misc 金三胖
可以看到是有三帧的内容有flag的 直接 convert aaa.gif .png 逐帧分解,得到: flag{he11ohongke} (kali真好用呀)
- splite与join
Python split() 通过指定分隔符对字符串进行切片 切片之后为list数据类型. sentence = 'I can because I think I can ' s_1 = senten ...
- MFC多线程的创建使用
最近学习了MFC多线程的使用, 写了一个继承CWinThread类的类MyThread: 在头文件开头用#define定义一个线程函数入口地址(会在下面定义代码中写出) 在类的开头加上IMPLEMEN ...
- python基础_面向对象进阶
@property装饰器 之前我们讨论过Python中属性和方法访问权限的问题,虽然我们不建议将属性设置为私有的,但是如果直接将属性暴露给外界也是有问题的,比如我们没有办法检查赋给属性的值是否有效.我 ...
- 如何决定使用 HashMap 还是 TreeMap? (转)
问:如何决定使用 HashMap 还是 TreeMap? 介绍 TreeMap<K,V>的Key值是要求实现java.lang.Comparable,所以迭代的时候TreeMap默认是按照 ...
- JavaSE--jdbc编程
JDBC全称为:Java Data Base Connectivity (java数据库连接),可以为多种数据库提供统一的访问.JDBC是sun开发的一套数据库访问编程接口,是一种SQL级的API.它 ...
- Linux系统定时备份网站文件到七牛云存储脚本
1.七牛云账号注册. 有些朋友可能会问为什么要备份到七牛云?很简单,七牛云免费注册就能获取1G的存储空间,只要简单几步操作完成实名认证即可获取10G的存储空间,对于一般个人站点来说已经足够备份使用了. ...
- python 字符串前面加r,u的含义
u/U:表示unicode字符串 不是仅仅是针对中文, 可以针对任何的字符串,代表是对字符串进行unicode编码. 一般英文字符在使用各种编码下, 基本都可以正常解析, 所以一般不带u:但是中文, ...