使用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的Media Queries(跨平台设计)
Jul 27 HTML / CSS
利用css3-animation实现逐帧动画效果
Mar 10 HTML / CSS
简单掌握CSS3中resize属性的用法
Apr 01 HTML / CSS
html5 Canvas画图教程(7)—canvas里画曲线之quadraticCurveTo方法
Jan 09 HTML / CSS
html5的自定义data-*属性与jquery的data()方法的使用
Jul 02 HTML / CSS
html5使用canvas画空心圆与实心圆
Dec 15 HTML / CSS
HTML5制作酷炫音频播放器插件图文教程
Dec 30 HTML / CSS
使用phonegap查找联系人的实现方法
Mar 31 HTML / CSS
HTML5的Video标签有部分MP4无法播放的问题解析(多图)
Aug 18 HTML / CSS
详解canvas多边形(蜘蛛图)的画法示例
Jan 29 HTML / CSS
HTML5 图片预加载的示例代码
Mar 25 HTML / CSS
HTML5输入框下拉菜单功能的示例代码
Sep 08 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
Ping服务的php实现方法,让网站快速被收录
2012/02/04 PHP
PHP高级对象构建 工厂模式的使用
2012/02/05 PHP
PHP中exec与system用法区别分析
2014/09/22 PHP
php中实现xml与mysql数据相互转换的方法
2014/12/25 PHP
PHP判断网络文件是否存在的方法
2015/03/12 PHP
php 删除一维数组中某一个值元素的操作方法
2018/02/01 PHP
PHP校验15位和18位身份证号的类封装
2018/11/07 PHP
php 命名空间(namespace)原理与用法实例小结
2019/11/13 PHP
jQuery文件上传控件 Uploadify 详解
2016/06/20 Javascript
浅谈addEventListener和attachEvent的区别
2016/07/14 Javascript
Angularjs单选框相关的示例代码
2017/08/17 Javascript
详解angular笔记路由之angular-router
2017/09/12 Javascript
vue实现页面加载动画效果
2017/09/19 Javascript
NW.js 简介与使用方法
2018/02/01 Javascript
基于JavaScript实现幸运抽奖页面
2020/07/05 Javascript
Vue v-model组件封装(类似弹窗组件)
2020/01/08 Javascript
javascript中的with语句学习笔记及用法
2020/02/17 Javascript
原生js实现自定义滚动条组件
2021/01/20 Javascript
[03:40]2014DOTA2国际邀请赛 B神专访:躲箭真的很难
2014/07/13 DOTA
python中dir函数用法分析
2015/04/17 Python
Python通过90行代码搭建一个音乐搜索工具
2015/07/29 Python
举例讲解Python设计模式编程中对抽象工厂模式的运用
2016/03/02 Python
python导入时小括号大作用
2017/01/10 Python
Django与JS交互的示例代码
2017/08/23 Python
Python三维绘图之Matplotlib库的使用方法
2020/09/20 Python
python3判断IP地址的方法
2021/03/04 Python
LA MER海蓝之谜美国官网:传奇面霜
2016/08/27 全球购物
C#如何调用Word并打开一个Word文档
2013/05/08 面试题
最新会计专业求职信范文
2014/01/28 职场文书
元旦晚会策划方案
2014/02/18 职场文书
岗位安全生产责任书
2014/07/28 职场文书
反腐倡廉主题教育活动总结
2015/05/07 职场文书
跑吧孩子观后感
2015/06/10 职场文书
高一化学教学反思
2016/02/22 职场文书
PHP命令行与定时任务
2021/04/01 PHP
详解nginx location指令
2022/01/18 Servers