使用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 相关文章推荐
css背景图片的背景裁切、背景透明度、背景变换等效果运用
Dec 24 HTML / CSS
用CSS3打造HTML5的Logo(实现代码)
Jun 16 HTML / CSS
CSS3实现文字波浪线效果示例代码
Nov 20 HTML / CSS
详解css3 Transition属性(平滑过渡菜单栏案例)
Sep 05 HTML / CSS
CSS实现聊天气泡效果
Apr 26 HTML / CSS
如何使用css3实现一个类在线直播的队列动画的示例代码
Jun 17 HTML / CSS
浅谈cookie和localStorage那些事
Aug 27 HTML / CSS
HTML5 Canvas 起步(2) - 路径
May 12 HTML / CSS
详解html5 canvas 微信海报分享(个人爬坑)
Jan 12 HTML / CSS
h5网页水印SDK的实现代码示例
Feb 19 HTML / CSS
AmazeUI 按钮交互的实现示例
Aug 24 HTML / CSS
CSS中妙用 drop-shadow 实现线条光影效果
Nov 11 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
介绍几个array库的新函数 php
2006/12/29 PHP
PHP截取汉字乱码问题解决方法mb_substr函数的应用
2008/03/30 PHP
PHP 模拟$_PUT实现代码
2010/03/15 PHP
让你成为更出色的PHP开发者的10个技巧
2011/02/25 PHP
使用GD库生成带阴影文字的图片
2015/03/27 PHP
PHP获取星期几的常用方法小结
2018/12/18 PHP
js三种排序算法分享
2012/08/16 Javascript
javascript中常用编程知识
2013/04/08 Javascript
javascript实现可改变滚动方向的无缝滚动实例
2013/06/17 Javascript
nodejs读取memcache示例分享
2014/01/02 NodeJs
jQuery实现仿腾讯迷你首页选项卡效果代码
2015/09/17 Javascript
详解JavaScript的流程控制语句
2015/11/30 Javascript
基于javascript实现图片懒加载
2016/01/05 Javascript
jQuery隐藏和显示效果实现
2016/04/06 Javascript
javascript原型继承工作原理和实例详解
2016/04/07 Javascript
AngularJs Understanding the Controller Component
2016/09/02 Javascript
ajax异步请求详解
2017/01/06 Javascript
jquery 遍历hash操作示例【基于ajax交互】
2019/10/12 jQuery
微信小程序实现横向滚动导航栏效果
2019/12/12 Javascript
支付宝小程序实现省市区三级联动
2020/06/21 Javascript
[13:55]Newbee vs Team Spirit
2018/06/07 DOTA
python实现Adapter模式实例代码
2018/02/09 Python
python 3.74 运行import numpy as np 报错lib\site-packages\numpy\__init__.py
2019/10/06 Python
Python使用for生成列表实现过程解析
2020/09/22 Python
简约控的天堂:The Undone
2016/12/21 全球购物
有机童装:Toby Tiger
2018/05/23 全球购物
Gretna Green中文官网:苏格兰格林小镇
2019/10/16 全球购物
计算机本科生自荐信
2013/10/15 职场文书
艺人经纪人岗位职责
2014/04/15 职场文书
寒假安全保证书
2015/02/28 职场文书
聘任协议书(挂靠)
2015/09/21 职场文书
员工聘用合同范本
2015/09/21 职场文书
丧事答谢词大全
2015/09/30 职场文书
Redis高级数据类型Hyperloglog、Bitmap的使用
2021/05/24 Redis
python中的sys模块和os模块
2022/03/20 Python
Python如何使用循环结构和分支结构
2022/04/13 Python