使用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中的5个有趣的新技术
Apr 02 HTML / CSS
HTML5时代CSS设置漂亮字体取代图片
Sep 04 HTML / CSS
使用CSS3实现圆角,阴影,透明
Dec 23 HTML / CSS
HTML5实现经典坦克大战坦克乱走还能发出一个子弹
Sep 02 HTML / CSS
基于html5 DeviceOrientation 实现微信摇一摇功能
Sep 25 HTML / CSS
简单的HTML5初步入门教程
Sep 29 HTML / CSS
HTML5标签嵌套规则详解【必看】
Apr 26 HTML / CSS
HTML5操作WebSQL数据库的实例代码
Aug 26 HTML / CSS
将SVG图引入到HTML页面的实现
Sep 20 HTML / CSS
html5 canvas 实现光线沿不规则路径运动
Apr 20 HTML / CSS
详解CSS开发过程中的20个快速提升技巧
May 21 HTML / CSS
css3新特性的应用示例分析
Mar 16 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
德生PL660的电路分析和打磨
2021/03/02 无线电
制作安全性高的PHP网站的几个实用要点
2014/12/30 PHP
php ImageMagick windows下安装教程
2015/01/26 PHP
javascript判断单选框或复选框是否选中方法集锦
2007/04/04 Javascript
javascript中hasOwnProperty() 方法使用指南
2015/03/09 Javascript
jQuery实现简易的天天爱消除小游戏
2015/10/16 Javascript
轻松搞定jQuery.noConflict()
2016/02/15 Javascript
vue-star评星组件开发实例
2018/03/01 Javascript
vue脚手架搭建项目的兼容性配置详解
2018/07/17 Javascript
vue发送ajax请求详解
2018/10/09 Javascript
解决vue 界面在苹果手机上滑动点击事件等卡顿问题
2018/11/27 Javascript
vue.js实现的全选与全不选功能示例【基于elementui】
2018/12/03 Javascript
微信小程序 select 下拉框组件功能
2019/09/09 Javascript
基于Nuxt.js项目的服务端性能优化与错误检测(容错处理)
2019/10/23 Javascript
JavaScript实现与web通信的方法详解
2020/08/07 Javascript
Python处理RSS、ATOM模块FEEDPARSER介绍
2015/02/18 Python
Python捕捉和模拟鼠标事件的方法
2015/06/03 Python
python单例模式获取IP代理的方法详解
2018/09/13 Python
Appium+python自动化怎么查看程序所占端口号和IP
2019/06/14 Python
用django设置session过期时间的方法解析
2019/08/05 Python
python+jinja2实现接口数据批量生成工具
2019/08/28 Python
python 公共方法汇总解析
2019/09/16 Python
Python调用Windows API函数编写录音机和音乐播放器功能
2020/01/05 Python
python3实现将json对象存入Redis以及数据的导入导出
2020/07/16 Python
如何利用python之wxpy模块玩转微信
2020/08/17 Python
美国高街时尚品牌:OASAP
2016/07/24 全球购物
英国最大的女性服装零售商:Dorothy Perkins
2017/03/30 全球购物
环境工程求职简历的自我评价范文
2013/10/24 职场文书
大班亲子运动会方案
2014/06/10 职场文书
事业单位个人总结
2015/02/12 职场文书
员工离职证明范本
2015/06/12 职场文书
催款函范本大全
2015/06/24 职场文书
初中开学典礼新闻稿
2015/07/17 职场文书
检举信的写法
2019/04/10 职场文书
门面租赁合同范文
2019/08/06 职场文书
准备去美国留学,那么大学申请文书应该怎么写?
2019/08/12 职场文书