本篇文章带大家一起深入了解一下CSS3中的新特性::target-text 选择器, 聊聊给选择器的作用和使用方法, 希望对大家有所帮助!
文章插图
最近在 MDN 官网看到了一个从未见过的选择器, ::target-text 。
文章插图
简单研究了一下, 觉得还有点意思, 也有点实际用处, 现在分享一下 。 【推荐学习:css视频教程】
一、::target-text 是干什么的想必大家都用过
:target
这个选择器, 可以很方便的从URL中匹配到页面上的内容, 并且实现锚定定位 。 比如文档目录上经常看到这样的 文章插图
但是,
:target
必须要求页面中包含id
为该目标的元素, 如果不存在就没办法定位了 。 为了解决这个问题, 于是, ::target-text
就出现了! 从字面意思上来看, ::target-text 表示"锚定文本"选择器 。 官方MDN上的描述为:
如果浏览器支持滚动到文本片段这个特性, 则会滚动到这部分文本所在的地方, 并且允许用户自定义高亮显示该部分文本样式 。什么意思呢, 这里官方有一个例子 scroll-to-text demo
文章插图
可以看到点击这个链接后, 浏览器自动跳转到指定的文本片段, 并且该文本会有高亮的样式(图中的紫色背景, 白色文字) 。
于是,
::target-text
可以用来自定义这部分的样式 ::target-text { background-color: rebeccapurple; color: white;}不过, 支持的样式比较有限, 和
::selection
差不多, 仅支持文本相关样式 二、如何指定跳转位置我们都知道,
:target
是通过在URL上指定#
加 id 来匹配的, 如下 http://www.example.com/index.html#section2<section id="section2">Example</section>【一文了解CSS3中的新特性 ::target-text 选择器】回到刚才那个例子, 可以看到跳转链接是这样的
文章插图
可以看到,
::target-text
也是有对应的规则的, 如下 http://www.example.com/index.html#:~:text=textStart这里的
textStart
就是表示页面中需要跳转的文本内容 。 不过需要注意的是, 如果有多段文本都能够匹配, 那么会定位到第一个相匹配的文本(和 id 有点类似) 。 三、如何精准的定位单纯的指定一小段文本, 很容易出现定位不准的情况(太容易重复了) 。 为了解决这个问题, 有两个方案
- 尽量指定长的文本, 这样就不会重复了在文本前后加上限制, 比如起始点字符
:~:text
的完整语法 #:~:text=[prefix-,]textStart[,textEnd][,-suffix]
- prefix- 前缀文本textStart 文本开始textEnd 文本结束-suffix 后缀文本
文章插图
可以直接指定起始字符,
Mlle,parachute
#:~:text=Mlle,parachute
可以访问这个链接 https://mdn.github.io/css-examples/target-text/index.html#:~:text=Mlle,parachute效果如下
文章插图
可以看到定位区域在第一个
parachute
处就结束了, 并没有定位到后面的 。 这时可以继续限制一下, 比如把后面的.
加进来, 作为后缀 #:~:text=Mlle,parachute,-.
可以访问这个链接 https://mdn.github.io/css-examples/target-text/index.html#:~:text=Mlle,parachute,-.效果如下
文章插图
这样就能精准的定位到想要的内容了
四、浏览器行为和兼容性虽然有上面的语法, 但实际上浏览器已经内置了快捷操作 。 选中一段文本, 右键会出现这样的菜单, 有一个“复制指向突出显示的内容的链接”选项(Edge浏览器提示略有不同), 如下
推荐阅读
- 带你了解主播和商家合作佣金多少 一般主播和商家合作佣金多少
- 想瘦脸该不该拔智齿 你需要了解的智齿知识
- 卧蚕和眼袋的区别 想祛眼袋得先了解形成原因
- 原神圣遗物词缀是什么意思-圣遗物词缀效果分享您需要了解的
- 【养生常识】带你了解什么是高温瑜伽!
- 剑与远征亡灵种族塔通关攻略-亡灵种族塔通关技巧及心得您需要了解的
- 天天象棋192期残局挑战怎么过-天天象棋残局挑战第192期通关步骤介绍您需要了解的
- 微信撩妹打招呼图片
- 11个月宝宝的生长发育特点,速来了解!
- 10个月宝宝的生长发育特点,速来了解!