使用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个性化字体_动力节点Java学院整理
Jul 12 HTML / CSS
CSS3中的5个有趣的新技术
Apr 02 HTML / CSS
纯css3制作网站后台管理面板
Dec 30 HTML / CSS
CSS3的颜色渐变效果的示例代码
Sep 29 HTML / CSS
html5 Canvas画图教程(3)—canvas出现1像素线条模糊不清的原因
Jan 09 HTML / CSS
HTML5移动端手机网站开发流程
Apr 25 HTML / CSS
iframe跨域的几种常用方法
Nov 11 HTML / CSS
HTML5给汉字加拼音收起展开组件的实现代码
Apr 08 HTML / CSS
HTML5超文本标记语言的实现方法
Sep 24 HTML / CSS
html5移动端禁止长按图片保存的实现
Apr 20 HTML / CSS
HTML5+CSS+JavaScript实现捉虫小游戏设计和实现
Oct 16 HTML / CSS
CSS中理解层叠性及权重如何分配
Dec 24 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从右向左/从左向右截取字符串的实现方法
2011/11/28 PHP
PHP实现生成数据字典功能示例
2018/05/24 PHP
style、 currentStyle、 runtimeStyle区别分析
2010/08/01 Javascript
javaScript 利用闭包模拟对象的私有属性
2011/12/29 Javascript
js onload处理html页面加载之后的事件
2013/10/30 Javascript
javascript实现输出指定行数正方形图案的方法
2015/08/03 Javascript
jQuery内容折叠效果插件用法实例分析(附demo源码)
2016/04/28 Javascript
详解Vue中添加过渡效果
2017/03/20 Javascript
jQuery实现分页功能(含ajax请求、后台数据、附完整demo)
2017/04/03 jQuery
详谈for循环里面的break和continue语句
2017/07/20 Javascript
使用vue打包时vendor文件过大或者是app.js文件很大的问题
2018/06/29 Javascript
layer.open 按钮的点击事件关闭方法
2018/08/17 Javascript
浅谈vue方法内的方法使用this的问题
2018/09/15 Javascript
vue-music 使用better-scroll遇到轮播图不能自动轮播问题
2018/12/03 Javascript
微信小程序实现日期格式化和倒计时
2020/11/01 Javascript
vue 组件内获取actions的response方式
2019/11/08 Javascript
vscode 使用Prettier插件格式化配置使用代码详解
2020/08/10 Javascript
[01:30]DOTA2上海特锦赛现场采访 Loda倾情献唱
2016/03/25 DOTA
python3安装pip3(install pip3 for python 3.x)
2018/04/03 Python
Python字典创建 遍历 添加等实用基础操作技巧
2018/09/13 Python
学习python可以干什么
2019/02/26 Python
Python 给定的经纬度标注在地图上的实现方法
2019/07/05 Python
一行python实现树形结构的方法
2019/08/09 Python
基于python plotly交互式图表大全
2019/12/07 Python
Python要如何实现列表排序的几种方法
2020/02/21 Python
解决canvas转base64/jpeg时透明区域变成黑色背景的方法
2016/10/23 HTML / CSS
应聘编辑自荐信范文
2014/03/12 职场文书
主题班会演讲稿
2014/05/22 职场文书
励志演讲稿300字
2014/08/21 职场文书
党的群众路线教育实践活动整改落实情况报告
2014/10/28 职场文书
党的群众路线教育实践活动学习计划
2014/11/03 职场文书
2014年法院个人工作总结
2014/12/17 职场文书
城管年度个人总结
2015/02/28 职场文书
大学生求职自荐信
2015/03/24 职场文书
六年级作文之家庭作文
2019/12/12 职场文书
「约定的梦幻岛」作画发布诺曼生日新绘
2022/03/21 日漫