这篇文章发布于 2010年10月8日,星期五,20:06,归类于 CSS相关。 阅读 102767 次, 今日 11 次 12 条评论
by zhangxinxu from http://www.zhangxinxu.com
本文地址:http://www.zhangxinxu.com/wordpress/?p=1147
关于浏览器文字选中颜色
以我的系统举例(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
(本篇完)
- JS Range HTML文档/文字内容选中、库及应用介绍 (0.745)
- 新浪微博插入话题后部分文字选中的js实现 (0.499)
- js页面文字选中后分享到新浪微博实现 (0.406)
- 不同CSS布局实现与文字鼠标选择的可用性 (0.406)
- 深入CSS ::first-letter伪元素及其实例等 (0.339)
- 基于文字的URL锚点定位与::target-text样式设置 (0.339)
- 划词评论与Range开发若干经验分享 (0.339)
- JS文本选区变化selectionchange事件实践小记 (0.339)
- CSS全部147个颜色关键字及对应颜色值 (0.200)
- 备忘:CSS术语词汇表 (0.162)
- CSS实现兼容性的渐变背景(gradient)效果 (RANDOM - 0.107)
嗷嗷
当文本内容使用了下滑线的属性的时候,设置selection背景色如果不设置透明度的话下滑线是会被覆盖的,有什么更好的方案能够解决此问题吗(除了使用背景色透明度)
请问有没有什么办法让选中的文本在脱离焦点后仍然保持颜色不变
选中文本后,改变背景颜色,颜色跟设置的不一定一致
123456
p {background: #3d3d3d;}
p::selection{ background: #fff; }
选中文本后,背景颜色不是白色的
请问,这个问题有遇到过吗?
正是需要,博主解决了我的问题。
请问各位这个效果在IE浏览器上有什么办法兼容没?
@潇潇编程 我个人并不清楚,我个人觉得似乎没有什么好方法。
红底白底,阅读性比较高的!
学习学习
很好,学习了
很好,很强悍,CSS2当初我都没学完,看来我还真不是学这种的料。。
来学习参观