使用CSS3改变文本选中的默认颜色——张鑫旭
关于浏览器文字选中颜色
以我的系统举例(xp 默认主题),浏览器上页面文字选中后默认的背景色是一种蓝色, 不同浏览器的颜色有些许差异,但大致相同,文字颜色也近乎白色,如下图所示,截自Firefox3.6浏览器:
在CSS3的爸爸妈妈还没有相亲认识的时候,要改变页面上文字选中后的背景色以及文字颜色,就跟让太监生孩子一样困难。但是,随着CSS3呱呱落地,获得越来越多的浏览器认可,一切又显得那么自然而然。虽然有些顽固的糟老头(如IE浏览器)还不认可这个新生的CSS3,但是,丝毫不影响其在其他浏览器上对UI的又一次改进。
目前Firefox、Safari、Chrome以及Opera浏览器都支持文本选择属性,如果浏览器不支持该属性,会直接忽略它,所以不会产生任何不良的影响。
下面就简单展示下这个改进UI体验的小技巧。
二、改变默认选中颜色
首先,简单点的例子,我们可以设置整个页面文本选中的基本样式,如下:
::selection {
    background:#d3d3d3;
    color:#555;
}
::-moz-selection {
    background:#d3d3d3;
    color:#555;
}
::-webkit-selection {
    background:#d3d3d3;
    color:#555;
}
于是,文本选中的默认蓝色背景就此变成了淡灰色,如下图所示,截自Chrome浏览器:
当然,我们可以使用CSS选择器指定特定标签内容文字选中后的样式状态,例如下面所展示的栗色选中状态:
.maroon::selection {
    background:maroon;
    color:#fff;
}
.maroon::-moz-selection {
    background:maroon;
    color:#fff;
}
.maroon::-webkit-selection {
    background:maroon;
    color:#fff;
}
<p class="maroon">...文字内容。</p>
会得到类似下图的效果:
同样的,你可以根据自己的需要,指定CSS选择器以及对应内容文字/图片等的选中样式,这里就不一一举例了。
兼容性(补充于2016-01-04)
IE9+浏览器都支持::selection, 考虑到现在IE8及其以下浏览器的份额越来越小,此属性应该被更多人熟知和使用。
三、实例页面
您可以狠狠地点击这里:CSS3改变文本选中默认样式demo
四、结语
老实讲,在实际的商业项目中,我是绝不会使用:selection来改变文本选中的样式的,要是个人网站或是设计类网站倒是很有可能使用此属性来让网站蓬荜生辉。当然,每个人在页面重构的过程中所注重的地方时不一样的,所以,对:selection的态度仅代表个人观点。
本文其实没有什么内容,小技巧展示而已。如果文中有什么表述不准确的地方欢迎指正,也欢迎通过评论进行交流。
原创文章,转载请注明来自张鑫旭-鑫空间-鑫生活[http://www.zhangxinxu.com]
本文地址:http://www.zhangxinxu.com/wordpress/?p=1147
使用CSS3改变文本选中的默认颜色——张鑫旭的更多相关文章
- 使用CSS3改变文本选中的默认颜色
		
::selection { background:#d3d3d3; color:#555; } ::-moz-selection { background:#d3d3d3; color:#555; } ...
 - 好吧,CSS3 3D transform变换,不过如此!——张鑫旭
		
一.写在前面的秋裤 早在去年的去年,我就大肆介绍了2D transform相关内容.看过海贼王的都知道,带D的家伙都不是好惹的,2D我辈尚可以应付,3D的话,呵呵,估计我等早就在千里之外被其霸气震晕了 ...
 - 小tip:CSS3下的渐变文字效果实现——张鑫旭
		
by zhangxinxu from http://www.zhangxinxu.com本文地址:http://www.zhangxinxu.com/wordpress/?p=1601 一.方法一:借 ...
 - css3-13 如何改变文本框的轮廓颜色
		
css3-13 如何改变文本框的轮廓颜色 一.总结 一句话总结:outline使用和border很像,几乎一模一样,多了一个offset属性 1.轮廓outline如何使用? 使用和border很像, ...
 - CSS3 @font-face实现颜色大小可控的三角效果——张鑫旭
		
一.我之前介绍过的三角实现效果回顾 这里所说的三角效果之等腰直角三角形效果(等边三角形有现成字符实现,没什么好说的:还有图片实现三角众人皆知,不予以说明): 1. 字符实现三角效果关于字符实现三角我早 ...
 - 翻译 – CSS3 Backgrounds相关介绍——张鑫旭
		
—————以下为翻译内容—————- CSS2.1中有5个background属性可以用来控制元素的背景.这5个属性是: background-color background-image backg ...
 - 小tip:FireFox下文本框/域百分比padding bug解决——张鑫旭
		
一.问题描述 我是流体布局控,经常会遇到文本框以及文本域宽度100%自适应显示的情况. 如下效果图: 在窄屏下,上面的文本框宽度也要跟着外部宽度变小. 难点对于文本框或者文本域,光标最好距离左侧边缘有 ...
 - 理解CSS3 transform中的Matrix(矩阵)——张鑫旭
		
by zhangxinxu from http://www.zhangxinxu.com本文地址:http://www.zhangxinxu.com/wordpress/?p=2427 一.哥,我被你 ...
 - HTML5 number类型文本框step属性的验证机制——张鑫旭
		
我在下一盘很大的棋,本文只是其中的一个棋子. 需要提前知道的: 目前而言,对step雄起的浏览器为IE10+, Chrome以及Opera浏览器. 需要预先知道number类型input的一些基本知识 ...
 
随机推荐
- 队列(循环队列)----C语言
			
线性结构:有且只有一个根节点,且每个节点最多有一个直接前驱和一个直接后继的非空数据结构 非线性结构:不满足线性结构的数据结构 队列 队列一般分为两类:链式队列和顺序队列 链式队列---链式队列即用链表 ...
 - hdoj1180 诡异的楼梯(bfs+奇偶判断)
			
手癌!日常手癌!被自己气死! #include<iostream> #include<cstring> #include<queue> #include<al ...
 - java保留小数点两位的4种方法
			
import java.math.BigDecimal; import java.text.DecimalFormat; import java.text.NumberFormat; public c ...
 - HTML+纯JS制作音乐播放器
			
该篇文章会教你通过JavaScript制作一个简单的音乐播放器.包括播放.暂停.上一曲和下一曲. 阅读本文章你需要对HTML.CSS和Javascript有基本的了解. 话不多说,先上图. emmm. ...
 - iOS —— GCD 详解
			
一.什么是GCD Grand Central Dispatch (强大的中枢调度器) ,是异步执行任务的技术之一.纯C语言,有很多强大的函数. 二.GCD的优势 (1)GCD是苹果公司为多核并行运算提 ...
 - java_sql_Batch_批处理
			
java JDBC 进行sql语句的批处理的两种方法示例代码.表是oracle数据库里的dept表,为了看清逻辑关系,把异常都throws 出去. package com.ayang.jdbc; i ...
 - spring websocket 和socketjs实现单聊群聊,广播的消息推送详解
			
spring websocket 和socketjs实现单聊群聊,广播的消息推送详解 WebSocket简单介绍 随着互联网的发展,传统的HTTP协议已经很难满足Web应用日益复杂的需求了.近年来,随 ...
 - python基础笔记之面向对象
			
# class Foo:# name="kevin"## def __init__(self,puppy):# self.tomato= 'red'# self.dog = pup ...
 - python独立环境——virtualenv
			
安装: pip3 intall virtualenv 创建独立运行环境: 1. 进入项目文件夹根目录 2. 创建环境 Mac:myproject michael$ virtualenv --no- ...
 - nodejs + express 热更新
			
以前node中的express框架,每次修改代码之后,都需要重新npm start 才能看到改动的效果,非常麻烦,所以这里引入nodemon模块,实现了不用重启也能自动更新这样的好处 1.全局安装no ...