使用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

时间: 2024-10-09 20:58:46

使用CSS3改变文本选中的默认颜色——张鑫旭的相关文章

小tip:CSS3下的渐变文字效果实现——张鑫旭

by zhangxinxu from http://www.zhangxinxu.com本文地址:http://www.zhangxinxu.com/wordpress/?p=1601 一.方法一:借助mask-image属性 可以狠狠地点击这里:CSS3下的渐变文字效果方法一demo 如果您手头上的浏览器是Chrome或是Safari,则您可以在demo页面中看到类似下面的效果: 相应的HTML代码如下: <h2 class="text-gradient" data-text=

理解CSS3 transform中的Matrix(矩阵)——张鑫旭

by zhangxinxu from http://www.zhangxinxu.com本文地址:http://www.zhangxinxu.com/wordpress/?p=2427 一.哥,我被你吓住了 打架的时候会被块头大的吓住,学习的时候会被奇怪名字吓住(如“拉普拉斯不等式”).这与情感化设计本质一致:界面设计好会让人觉得这个软件好用! 所以,当看到上面“Matrix(矩阵)”的时候,难免会心生畏惧(即使你已经学过),正常心理.实际上,这玩意确实有点复杂. 然而,这却是屌丝逆袭的一个好机

CSS3选择器:nth-child和:nth-of-type之间的差异——张鑫旭

一.深呼吸,直接内容 :nth-child和:nth-of-type都是CSS3中的伪类选择器,其作用近似却又不完全一样,对于不熟悉的人对其可能不是很区分,本文就将介绍两者的不同,以便于大家正确灵活使用这两类选择器. 先看一个简单的实例,首先是HTML部分: <section> <p>我是第1个p标签</p> <p>我是第2个p标签</p> <!-- 希望这个变红 --> </section> 然后两个选择器相对应的CSS

HTML5 number类型文本框step属性的验证机制——张鑫旭

我在下一盘很大的棋,本文只是其中的一个棋子. 需要提前知道的: 目前而言,对step雄起的浏览器为IE10+, Chrome以及Opera浏览器. 需要预先知道number类型input的一些基本知识. HTML5 step的验证机制可以应用在不支持的浏览器上. 问题引导,威逼利诱 如下一小段含step属性的HTML代码: <input type="number" step="2.1" min="1" /> 在Chrome浏览器下长相

CSS3:高亮文本选中颜色

关键字:  ::selection 为了个性化网站主题,可以对文本高亮背景颜色进行设置. :selection { background: #ffb7b7; /* WebKit/Blink Browsers */ } ::-moz-selection { background: #ffb7b7; /* Gecko Browsers */ } 一个简单的例子: <!DOCTYPE html> <html> <head> <meta charset="UTF

::selection伪元素改变文本选中颜色

在看张鑫旭大神的文章,刚刚发现了这个,感觉应该后面有用,先存起来. 效果如下: 代码如下: <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <style type="text/css"> p::selection { background: #d3d3d3; color: #fff; } p::

深入理解CSS3 gradient斜向线性渐变——张鑫旭

by zhangxinxu from http://www.zhangxinxu.com本文地址:http://www.zhangxinxu.com/wordpress/?p=3639 一.问题没有想得那么简单 提问,使用CSS3 gradient渐变,在一个400*300的div层上实现一个(100px, 100px)到(200px, 200px)由红到黄的斜向线性渐变,该如何实现? //zxx: 这里的讨论CSS3渐变都是基于新式规范写法,且忽略私有前缀 我们可能知道水平渐变的实现,类似这样

如何改变网页选中文本的颜色

一.文本选中的默认颜色 今天看了国外的很多网站,发现在网页中选中文本的时候,颜色不是我们平常所说的蓝色.经过google的帮助,发现,原来是 CSS 3.0的一个小特性. 除了主流浏览器(ie)之外,一般还是支持的. 這是浏览器默认选中的颜色 二.使用CSS3改变文本选中的默认颜色 <!DOCTYPE html> <html>     <head>         <style>             .demo1::selection{color:#ff

CSS改变默认文本选中的颜色的方法

请选择本页面文本看看:http://hovertree.com/h/bjaf/38hq6y9d.htm 一般情况下在网页里的文本我们用鼠标选中的时候都是蓝色的,这个默认颜色也是可以更改的,本文我们学习如何使用CSS3实现改变默认文本选中的颜色.以我的系统举例(xp 默认主题),浏览器上页面文字选中后默认的背景色是一种蓝色, 不同浏览器的颜色有些许差异,但大致相同,文字颜色也近乎白色. 一.关于浏览器文字选中颜色:在CSS3的爸爸 妈妈还没有相亲认识的时候,要改变页面上文字选中后的背景色以及文字颜