使用CSS3的::selection改变选中文本颜色的方法


Posted in HTML / CSS onSeptember 29, 2015

浏览器上页面文字选中后默认的背景色是一种蓝色, 不同浏览器的颜色有些许差异,但大致相同,文字颜色也近乎白色,如下图所示,截自Firefox3.6浏览器:
使用CSS3的::selection改变选中文本颜色的方法
在CSS3的爸爸妈妈还没有相亲认识的时候,要改变页面上文字选中后的背景色以及文字颜色,就跟让太监生孩子一样困难。但是,随着CSS3呱呱落地,获得越来越多的浏览器认可,一切又显得那么自然而然。虽然有些顽固的糟老头(如IE浏览器)还不认可这个新生的CSS3,但是,丝毫不影响其在其他浏览器上对UI的又一次改进。
目前Firefox、Safari、Chrome以及Opera浏览器都支持文本选择属性,如果浏览器不支持该属性,会直接忽略它,所以不会产生任何不良的影响。
下面就简单展示下这个改进UI体验的小技巧。
改变默认选中颜色
首先,简单点的例子,我们可以设置整个页面文本选中的基本样式,如下:

CSS Code复制内容到剪贴板
  1. ::selection {   
  2.     background:#d3d3d3;    
  3.     color:#555;   
  4. }   
  5.   
  6. ::-moz-selection {   
  7.     background:#d3d3d3;    
  8.     color:#555;   
  9. }   
  10.   
  11. ::-webkit-selection {   
  12.     background:#d3d3d3;    
  13.     color:#555;   
  14. }  

于是,文本选中的默认蓝色背景就此变成了淡灰色,如下图所示,截自Chrome浏览器:
使用CSS3的::selection改变选中文本颜色的方法
当然,我们可以使用CSS选择器指定特定标签内容文字选中后的样式状态,例如下面所展示的栗色选中状态:

CSS Code复制内容到剪贴板
  1. .maroon::selection {   
  2. background:maroon;    
  3. color:#fff;   
  4. }   
  5.   
  6. .maroon::-moz-selection {   
  7. background:maroon;    
  8. color:#fff;   
  9. }   
  10.   
  11. .maroon::-webkit-selection {   
  12. background:maroon;    
  13. color:#fff;   
  14. }   
  15. <p class="maroon">...文字内容。</p>  

会得到类似下图的效果:
使用CSS3的::selection改变选中文本颜色的方法

简而言之,要改变选中文本的颜色和背景颜色,需要使用 CSS3 新增的伪 ::selection,设置颜色 color 和背景颜色 background-colcr 即可,如:

CSS Code复制内容到剪贴板
  1. ::selection { color:#333background-color:#cce8cf;}   
  2. ::-moz-selection { color:#333background-color:#cce8cf;}   
  3. ::-webkit-selection { color:#333background-color:#cce8cf;}  

上面的代码效果如下图(截自 Firefox 5 浏览器):
使用CSS3的::selection改变选中文本颜色的方法
当然,你也可以结合CSS选择器,指定标签或区域文本选中后的样式状态。如:

CSS Code复制内容到剪贴板
  1. h2::selection { color:#f60background-color:#cce8cf;}   
  2. p::selection { color:#333background-color:#cce8cf;}   
  3.   
  4. h2::-moz-selection { color:#f60background-color:#cce8cf;}   
  5. p::-moz-selection { color:#333background-color:#cce8cf;}   
  6.   
  7. h2::-webkit-selection { color:#f60background-color:#cce8cf;}   
  8. p::-webkit-selection { color:#333background-color:#cce8cf;}  

大部分标签使用 selection 没有问题,但 a 标签在不同的浏览器下有差异,有的浏览器 a 标签不会应用上 ::selection 样式(如 FF5,Chrome12),有些浏览器则会应用上 ::selection 样式(如 Opera 11.50)。这可能是有的浏览器认为a比较重要,为了让用户知道这是链接,所以不改变颜色。

HTML / CSS 相关文章推荐
CSS3文本换行word-wrap解决英文文本超过固定宽度不换行
Oct 10 HTML / CSS
实列教程 一款基于jquery和css3的响应式二级导航菜单
Nov 13 HTML / CSS
用CSS3实现瀑布流布局的示例代码
Nov 10 HTML / CSS
CSS3 @media的基本用法总结
Sep 10 HTML / CSS
浅谈HTML5新增及移除的元素
Jun 27 HTML / CSS
关于前端上传文件全面基础扫盲贴(入门)
Aug 01 HTML / CSS
HTML5的结构和语义(4):语义性的内联元素
Oct 17 HTML / CSS
HTML5制作酷炫音频播放器插件图文教程
Dec 30 HTML / CSS
整理HTML5中支持的URL编码与字符编码
Feb 23 HTML / CSS
HTML5无刷新改变当前url的代码
Mar 15 HTML / CSS
微信小程序之html5 canvas绘图并保存到系统相册
Jun 20 HTML / CSS
HTML5适合的情人节礼物有纪念日期功能
Jan 25 HTML / CSS
CSS3绘制圆角矩形的简单示例
Sep 28 #HTML / CSS
CSS3的resize属性使用初探
Sep 27 #HTML / CSS
基于html和CSS3制作酷炫的导航栏
Sep 23 #HTML / CSS
基于CSS3实现的黑色个性导航菜单效果
Sep 14 #HTML / CSS
基于CSS3实现的漂亮Menu菜单效果代码
Sep 10 #HTML / CSS
实例讲解使用CSS实现多边框和透明边框的方法
Sep 08 #HTML / CSS
使用CSS3配合IE滤镜实现渐变和投影的效果
Sep 06 #HTML / CSS
You might like
PHP内核探索之解释器的执行过程
2015/12/22 PHP
PHP书写格式详解(必看)
2016/05/23 PHP
读jQuery之九 一些瑕疵说明
2011/06/21 Javascript
js控制表单操作的常用代码小结
2013/08/15 Javascript
JavaScript数据类型转换的注意事项
2016/07/31 Javascript
微信小程序 使用picker封装省市区三级联动实例代码
2016/10/28 Javascript
vue实现一个移动端屏蔽滑动的遮罩层实例
2017/06/08 Javascript
js微信应用场景之微信音乐相册案例分享
2017/08/11 Javascript
微信小程序实现下载进度条的方法
2017/12/08 Javascript
vue登录注册及token验证实现代码
2017/12/14 Javascript
nodejs多版本管理总结
2018/04/03 NodeJs
讲解vue-router之什么是动态路由
2018/05/28 Javascript
vue.js2.0 实现better-scroll的滚动效果实例详解
2018/08/13 Javascript
微信小程序rich-text富文本用法实例分析
2019/05/20 Javascript
解决layui下拉框监听问题(监听不到值的变化)
2019/09/28 Javascript
JQuery中的常用事件、对象属性与使用方法分析
2019/12/23 jQuery
JS实现炫酷雪花飘落效果
2020/08/19 Javascript
一篇文章带你从零快速上手Rollup
2020/09/07 Javascript
el-form 多层级表单的实现示例
2020/09/10 Javascript
python监控网站运行异常并发送邮件的方法
2015/03/13 Python
python扫描proxy并获取可用代理ip的实例
2017/08/07 Python
Python实现的人工神经网络算法示例【基于反向传播算法】
2017/11/11 Python
对Python3 goto 语句的使用方法详解
2019/02/16 Python
Python编程学习之如何判断3个数的大小
2019/08/07 Python
使用Python代码实现Linux中的ls遍历目录命令的实例代码
2019/09/07 Python
Python环境下安装PyGame和PyOpenGL的方法
2020/03/25 Python
从一次项目重构说起CSS3自定义变量在项目的使用方法
2021/03/01 HTML / CSS
英国最大的婴儿监视器网上商店:Baby Monitors Direct
2018/04/24 全球购物
英国家庭、花园、汽车和移动解决方案:Easylife Group
2018/05/23 全球购物
Bulk Powders意大利:运动补充在线商店
2019/02/09 全球购物
意大利在线眼镜精品店:Ottica Lipari
2019/11/11 全球购物
酒店总经理欢迎词
2014/01/15 职场文书
调研座谈会发言材料
2014/08/23 职场文书
农行心得体会
2014/09/02 职场文书
2015年食品安全工作总结
2015/05/15 职场文书
学校教学管理制度
2015/08/06 职场文书