使用CSS3的::selection改变选中文本颜色的方法
浏览器上页面文字选中后默认的背景色是一种蓝色, 不同浏览器的颜色有些许差异,但大致相同,文字颜色也近乎白色,如下图所示,截自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>
会得到类似下图的效果:
简而言之,要改变选中文本的颜色和背景颜色,需要使用 CSS3 新增的伪 ::selection,设置颜色 color 和背景颜色 background-colcr 即可,如:
- ::selection { color:#333; background-color:#cce8cf;}
- ::-moz-selection { color:#333; background-color:#cce8cf;}
- ::-webkit-selection { color:#333; background-color:#cce8cf;}
上面的代码效果如下图(截自 Firefox 5 浏览器):
当然,你也可以结合CSS选择器,指定标签或区域文本选中后的样式状态。如:
- h2::selection { color:#f60; background-color:#cce8cf;}
- p::selection { color:#333; background-color:#cce8cf;}
- h2::-moz-selection { color:#f60; background-color:#cce8cf;}
- p::-moz-selection { color:#333; background-color:#cce8cf;}
- h2::-webkit-selection { color:#f60; background-color:#cce8cf;}
- p::-webkit-selection { color:#333; background-color:#cce8cf;}
大部分标签使用 selection 没有问题,但 a 标签在不同的浏览器下有差异,有的浏览器 a 标签不会应用上 ::selection 样式(如 FF5,Chrome12),有些浏览器则会应用上 ::selection 样式(如 Opera 11.50)。这可能是有的浏览器认为a比较重要,为了让用户知道这是链接,所以不改变颜色。
相关文章
- jquery实现select下拉框美化特效,实现效果简洁大方,是一款非常实用的特效源码。2015-08-27
- 本示例要模仿的是下拉框,经过美化的伪下拉,右边的小三角是用css3实现的,鼠标经过的时候有旋转特效2014-05-13
- 这篇文章主要介绍了用CSS和Div美化SELECT样式的简单方法,同时提到了select相关的兼容性写法,需要的朋友可以参考下2015-08-06
- 改变select默认的样式,一般情路情况下通过ul,li来模拟来实现;Jquery插件也是这样,接下来介绍一种不写脚本,只用单纯的css来实现。在IE系列下,选中某个选项的时候会有背景2013-02-21
- 去年我学jQuery的时候,曾经做过一点选择器(selector)的笔记,今天是CSS的选择器,以后还有一部分xPath的选择器。今天的笔记中包括44个选择器,基本涵盖了CSS 2和CSS 3的2012-12-18
css 让文字不被选中之-moz-user-select 属性介绍
让文字不被选中,应该有一个css属性进行控制,结果网上查了下发现了-moz-user-select 属性介绍2024-05-05用CSS让img input select button 图片,文本框,下拉菜单,按扭垂直居中的
一直以来,在HTML中,img input select button 这里元素,垂直对齐,比较难。结果我长大了。我发现了一个现像,其实解决这些问题只是一句话的事。2011-03-08css教程:css指令,兼容,注释,selector-CSS教程-网页制作-网页教学网
1.2 跟css有关的标记,指令 1.2.1 link <link rel="stylesheet" type="text/css" href="sheet1.css" media="all" />2008-10-17- CSS Hack是在标准CSS没办法兼容各浏览器显示效果时才会用上的补救方法,在各浏览器厂商解析CSS没有达成一致前,我们只能用这样的方法来完成这样的任务. 我进行前端开发的2008-10-17
- 本文给大家介绍css代码去掉select的下拉箭头样式的方法,代码简单易懂,需要的朋友可以参考下2016-09-02
最新评论