马黑PHP整站系统

css自定义选中文本样式

位置: 首页 > 前端三套件[ 发布时间: 2024.2.27  作者: 马黑  阅读: 224 ]

当网页中的文本被用户选中,被选中的文本通常会呈现出蓝底白字的样子,并且,不论原来的文本做了什么样的修饰,是设置了前景色,还是做了突出显示,默认情况下,文本颜色都是白色。选中区域默认的蓝底白字没有什么不好,不过别样的文本选中样式应该极具表现力,一些特殊场景可能会有这方面的需求。

自定义文本被选中的样式,我们可以使用CSS的伪元素::selection来实现。如下CSS设置,将使得 class="mum" 的容器里的一切文本在被选中区域中拥有与默认样式不同的样子,请试着选择代码框中的文本,本文自身也设置了 ::selection 样式,也可以尝试一下,然后再去别处选择文本以便比较一下这里和它们的区别:

/* .mum选择器下被选中区域渲染样式,作用于其下 直接文本子节点和所有的子元素内的文本 特别需要注意:.mum 和 ::selection 之间有一个空格,这是作用于全部 写成没有空格间隔的,.mum::selection,仅作用于.mum的直接子文本节点 */
.mum ::selection { background: rgba(0,100,100,.35); }

::selection除了上述 background-color 或 background 设置,还可以设置少量的属性,以下是可以在 ::selection 伪元素选择器下使用的属性列表:

color: black; /* 前景色(文本颜色) */ background: silver; /* 同 background-color */ cursor: pointer; /* 鼠标指针 */ caret-color: red; /* 插入光标颜色 */ outline: 2px dotted pink; /* 外边框样式 */ text-decoration: underline; /* 文本装饰线条 */ text-emphasis-color: yellow; /* 文本强调色 */ text-shadow: 1px 1px solid black; /* 文本阴影 */

以上属性不是一旦设置就能生效,因为,原因之一是有一部分属性存在环境依赖,例如插入光标,通常仅出现在可在线编辑的区域,还可能有其他的原因,比如浏览器还没有支持,等等。通常,最常用的就是背景色和前景色设置。

【小技巧】正如本帖示例展示的代码那样,可以使用有透明度的颜色设置 ::selection 背景,且无需设置文本前景色,如此,文本原本的着色设计在用户选中时依然产生作用,阅读选中的文本时环境更为友好。

前一篇: 处理audio控件能否自动播放的另一种机制
下一篇: 《千灯展卷》关键帧动画制作演示

发表评论:

       

评论列表 [0条]

Copyright © 2023 All Right Reserved 马黑PHP文章管理整站系统v1.8
联系我们: gxblk@163.com