CSS user-select属性拾遗

昨天把Notebook整理了一下,去查了一下手册,原来之前比较忽略user-select这个属性,因为之前以为只有webkit才支持的。手册进行了补充:

user-select 禁止用户选中文字

none:文本不能被选择 
text:可以选择文本 
all:当所有内容作为一个整体时可以被选择。如果双击或者在上下文上点击子元素,那么被选择的部分将是以该子元素向上回溯的最高祖先元素。 
element:可以选择文本,但选择范围受元素边界的约束(webkit暂未支持)

兼容的处理:

  • IE6-9不支持该属性,可使用标签属性 onselectstart="return false;" 来实现;
  • Oprea老版本使用私有的标签属性 unselectable="on" 来达到 user-select:none 的效果;最新Opera中已经支持webkit前缀的此属性。
  • 除Chrome和Safari外,在其它浏览器中,如果将文本设置为 -ms-user-select:none;,则用户将无法在该文本块中开始选择文本。不过,如果用户在页面的其他区域开始选择文本,则用户仍然可以继续选择将文本设置为 -ms-user-select:none; 的区域文本;

总结则是:

html:

<p onselectstart="return false;" unselectable="on">禁止被选择的文字</p>

css:

/*在自动生成前缀时*/
p{user-select:none;} 

/*在不自动生成前缀时*/
p{
    user-select:none;
    -webkit-user-select:none;
    -ms-user-select:none;
    -moz-user-select:none;
}

谈到用户体验,似乎这么做除了一些必要的辅助地方,例如简单的避免drag事件,好像用途不大(用于防止盗文什么的没什么意义)。

但是无意间发现一个挺有用的地方,现在用字体做图标常见,一日在处理这个页面

侧边下方的副本切换按钮图标,则是引的iconfont,由于用户点击频繁,则会导致选中文字,看起来很不美观和谐,在这里应用一下user-select:none那是极好的。

故,简单的一个小心得,在用字体做图标时,图标所在元素会被频繁点击时,可考虑添加user-select:none,防止图标字体被作为文字选择而影响美观

时间: 2024-10-02 04:58:54

CSS user-select属性拾遗的相关文章

CSS的z-index属性是做什么用的

CSS的z-index属性是做什么用的: 在网页制作中,可能有这样的需求,就是让几个层重叠在一起,并且可以指定顺序,这时候使用z-index属性是个不错的选择. 但是此属性仅作用于position属性值为relative.absolute或fixed的对象,不会作用于窗口控件,如select对象. 实例代码如下: <!DOCTYPE html> <html> <head> <meta charset=" utf-8"> <meta

CSS中margin属性详解

margin属性概述margin是CSS层叠样式表中用来规定围绕在元素边框周围空白区域范围的属性. 该接受任何长度单位,可以是像素.英寸.毫米或 em. 相关属性margin 可以单独改变元素的上,下,左,右边距.也可以一次改变所有的属性. 使用语法1.使用单独属性设置四边的距离 #d2 { border: 1px solid blue; /*为了显示效果,所以让d2有了边框 */ margin-top: 20px; /*上边距为20px*/ margin-right: 30px; /*右边距为

css之操作属性

css之操作属性 1.文本 1.文本颜色:color 颜色属性被用来设置文字的颜色. 颜色是通过CSS最经常的指定: 十六进制值 - 如: #FF0000 一个RGB值 - 如: RGB(255,0,0) 颜色的名称 - 如:  red 2.水平对齐方式 text-align 属性规定元素中的文本的水平对齐方式. left      把文本排列到左边.默认值:由浏览器决定. right    把文本排列到右边. center 把文本排列到中间. justify 实现两端对齐文本效果. 2.文本其

CSS中连接属性的排序

在CSS超链接的属性中,有四个连接方式: a:link  a:hover a:visited a:acticve 之前在使用的时候一直是按照自认为的顺序中去写的,就是 L H V A的排序方式,然而有些时候却发现并不起作用了,查找了一些资料,也上网查找了一下,也有很多人在问及这个问题,如果是按照这种顺序排序,有时候显示正确,而有时候却显示不正确,追究原因,这个可能是由于浏览器的识别先后问题所导致的,也额能有缓存的原因在里面个人觉得,而最正确的写法应该是 L V H ,举个例子: <!DOCTYP

css解决select下拉表单option高度的办法

css在给select下拉表单设置样式如边框时可以轻松搞定,而我们在不喜欢其默认的下拉箭头的样式时试图通过background:url(图片路径)来修改之,则往往会出现浏览器的兼容性问题,在网上查了好多资料,最好的解决办法也是大神们用js来模拟下拉表单.额~,好吧,暂且就按照大神们的办法来解决这个问题吧. 下边来说说css如何解决select的option高度的? 有时我们在设置了select的高度后,发现其option的高度还是默认的高度,跟我们设置的select的高度大相径庭,很显然,这不是

CSS中box-sizing属性的理解与部分用法

今天看了一些关于box-sizing的一些资料,在这里整理一下,希望也能对大家有所帮助. box-sizing是CSS的一个属性,很好的解决了盒模型的相关问题.CSS中的盒模型(Box model)分为两派,一派是W3C的标准模型,一派是IE的传统模型.那它们之间有什么不同的呢?首先需要明确它们都是对元素计算尺寸的模型,具体说就是对元素的width,height,padding,border以及元素实际尺寸的计算关系:而不同的地方就在于两者的计算方法不一至:(下面引用一些公式向大家展示一下两者的

bootstrap-select js jQuery控制select属性变化

bootstrap-select我想大家都不陌生是一个前端下拉框的插件非常好用,在select的标签中设置属性可以做很多功能控制,不过初始化之后怎么去修改网上找遍中文英文也没有一个交代自己研究好久研究出来了,当然有的人会干掉重新生成那样太low,我决定来填补这个空白. js控制select属性变化其实很简单,并不需要 $('#goodsNames').selectpicker('render'); $('#goodsNames').selectpicker('refresh'); 来重新渲染只用

CSS border边框属性教程(color style)

CSS 边框即CSS border-border边框样式颜色.边框样式.边框宽度的语法结构与应用案例教程篇 一.CSS 边框基础知识 CSS 边框即CSS border是控制对象的边框边线宽度.颜色.虚线.实线等样式CSS属性.同时大家可以进入码农教程提供CSS手册查看border手册:http://www.manongjc.com/cssref/pr_border.html 二.Html原始边框与DIV+CSS边框对照 Html表格控制边框:border="1" bordercolo

CSS中display属性:block、inline和inline-block的区别

最近写HTML遇到一个问题:我想设置span的宽度和高度,但是在IE9和chrome下总是不起效果.代码和效果图如下: <head> <style> span{ background-color:#43be60; width:100px; height:50px; margin-top:20px; margin-left:20px; } </style> </head> <body> <div style="background-

css常用样式属性详细介绍

对于初学css的来说,肯定会觉得这么多样式不好记,而且记住了也容易忘,其实刚开始我们不用去记这么多的样式,确实是记了也会忘,刚开始只需记住一些常用的就可以了,然后在慢慢的使用过程当中接触并学习一些高级点的,这才是一个靠谱的渐进过程,下面列出一些css常用属性,仅供参考 “文字”属性共有8项: 1.“字体”(font-family),设定时,需考虑浏览器中有无该字体. 2.“大小”(font-size),注意度量单位. 3.“粗细”(font-weight),除了normal(正常).bold(粗