之前在《CSS的未来:一些试验性CSS属性》中有提到user-select这个属性,最近整理的时候有遇到,所以详细的了解了下,这里简单的介绍下。

这是在css3 UI规范中新增的一个功能,用来控制内容的可选择性。

user-select:value;  
  • auto——默认值,用户可以选中元素中的内容
  • none——用户不能选择元素中的任何内容
  • text——用户可以选择元素中的文本
  • element——文本可选,但仅限元素的边界内(只有IE和FF支持)
  • all——在编辑器内,如果双击/上下文点击发生在子元素上,改值的最高级祖先元素将被选中。
  • -moz-none——firefox私有,元素和子元素的文本将不可选,但是,子元素可以通过text重设回可选。

实例:

.selectDemo{  
background-color:#999;  
padding:20px;  
-moz-user-select: none;
-webkit-user-select: none;
-ms-user-select: none;
}

浏览器支持

目前,只有Geckowebkit支持该属性,包括基本上所有版本的Firefox/Chrome/Safari,IE10中也将支持该属性。当然,各个浏览器都必须加上私有前缀。Opera尚不支持。

结语

这个属性,在之前是被用来保护网站的内容,不被用户复制和转载,从而保护资讯的版权,但是这样却对普通用户的用户体验造成了伤害,而且,并不能真正的保护页面中的内容,这对前端开发人员来说,很容易搞定的吧? …XD

现在,HTML5蒸蒸日上,很多网站或者web app会使用到Drag and Drop技术,user-select正好在一些情境中可以用到。

当然,技术是为人服务的,怎么用都可以,但是,伤害用户体验的产品,最终是得不到用户的吧。。。