ホームページ  >  記事  >  ウェブフロントエンド  >  CSS3::target-text セレクターの新機能について 1 つの記事で説明します

CSS3::target-text セレクターの新機能について 1 つの記事で説明します

青灯夜游
青灯夜游転載
2022-04-12 11:24:562797ブラウズ

この記事では、CSS3::target-text セレクターの新機能を深く理解し、このセレクターの機能と使用法について説明します。皆様のお役に立てれば幸いです。

CSS3::target-text セレクターの新機能について 1 つの記事で説明します

最近、MDN 公式 Web サイトで、これまで見たことのないセレクター ::target-text を見つけました。

CSS3::target-text セレクターの新機能について 1 つの記事で説明します

簡単に調べてみたところ、これは少し興味深く、実用的な用途があると思いましたので、ここで共有します。 [推奨される学習: css ビデオ チュートリアル ]

1. ::target-text は何をしますか

#誰もがこれを使用したことがあると思います

:target このセレクターは、URL からページ上のコンテンツを簡単に照合し、アンカー位置を実装できます。たとえば、

CSS3::target-text セレクターの新機能について 1 つの記事で説明します

はドキュメント ディレクトリによく見られますが、

:target では、ページに id が含まれている必要があります。要素が存在しない場合、その要素を見つけることはできません。この問題を解決するために、::target-text が登場しました。

文字通り、

::target-text は「アンカー テキスト」セレクターを表します。公式 MDN の説明は次のとおりです。

ブラウザが

テキスト フラグメントまでスクロール 機能をサポートしている場合、テキストのこの部分の位置までスクロールし、ユーザーが高さをカスタマイズするには、テキスト スタイルのこの部分を強調表示します。

これはどういう意味ですか?これが公式の例です

スクロールしてテキストへのデモ

Kapture 2022-03-11 at 15.40.37.gif

これを見ることができますこれをクリックすると、リンク後、ブラウザは指定されたテキスト部分に自動的にジャンプし、テキストが強調表示されます (画像の背景が紫、テキストが白)。

したがって、

::target-text を使用してこの部分のスタイルをカスタマイズできます

::target-text {
  background-color: rebeccapurple;
  color: white;
}

ただし、サポートされるスタイルは比較的限られており、

: :selection ほぼ同じですが、テキスト関連のスタイルのみをサポートします

2. ジャンプ位置の指定方法

誰もが知っている

:target は URL で渡されます。次のように # を指定し、一致する ID を追加します。

http://www.example.com/index.html#section2

<section id="section2">Example</section>

先ほどの例に戻ると、ジャンプ リンクが次のようになっていることがわかります

CSS3::target-text セレクターの新機能について 1 つの記事で説明します

::target-text にも、次のような対応するルールがあることがわかります。

http://www.example.com/index.html#:~:text=textStart

textStartこれは、ページがテキスト コンテンツにジャンプする必要があることを意味します。ただし、複数のテキストが一致する場合は、最初に一致したテキストが検索されることに注意してください (ID と同様)。

3. 正確に配置する方法

テキストの小さなセクションを指定するだけでは、簡単に不正確な配置につながる可能性があります (繰り返すのは簡単すぎます)。この問題を解決するには、次の 2 つの解決策があります。

    テキストが重複しないように、できるだけ長いテキストを指定してください。
  1. テキストの前後に制限を追加します。開始点の文字など
オプション 1 は実行可能ですが、問題もあります。まず、アドレス バーが長すぎてあまり美しくありません。ただし、この小さなコンテンツを共有するだけで十分です。 、それほどではありません。次に、オプション 2 を見てください。ここでは、

:~:text

#:~:text=[prefix-,]textStart[,textEnd][,-suffix]

    prefix- prefix text
  • textStart text start
  • textEnd の完全な構文を簡単に紹介します。 textend
  • -suffix suffix text
文法的には、textStart のみが必須で、その他はオプションです。それの使い方?このテキストを検索するとします (最初と最後の句読点を除く)

CSS3::target-text セレクターの新機能について 1 つの記事で説明します

開始文字

Mlle,parachute

#:~:text=Mlle,parachute
を直接指定できます。

このリンクにアクセスできます https://mdn.github.io/css-examples/target-text/index.html#:~:text=Mlle,parachute

効果は次のとおりです

CSS3::target-text セレクターの新機能について 1 つの記事で説明します

可以看到定位区域在第一个parachute处就结束了,并没有定位到后面的。这时可以继续限制一下,比如把后面的.加进来,作为后缀

#:~:text=Mlle,parachute,-.

可以访问这个链接 https://mdn.github.io/css-examples/target-text/index.html#:~:text=Mlle,parachute,-.

效果如下

CSS3::target-text セレクターの新機能について 1 つの記事で説明します

这样就能精准的定位到想要的内容了

四、浏览器行为和兼容性

虽然有上面的语法,但实际上浏览器已经内置了快捷操作。选中一段文本,右键会出现这样的菜单,有一个“复制指向突出显示的内容的链接”选项(Edge浏览器提示略有不同),如下

CSS3::target-text セレクターの新機能について 1 つの記事で説明します

点击这个会自动复制一段包含#:~:text=的链接,浏览器会自动处理选中文本的前后限制,保证结果的唯一性。如下,将刚才复制的地址直接粘贴在浏览器打开

CSS3::target-text セレクターの新機能について 1 つの記事で説明します

然后说一下兼容性。

这个属性非常新,可以在 MDN 官网看到具体的兼容信息,需要 Chrome 89+ 以上才行

CSS3::target-text セレクターの新機能について 1 つの記事で説明します

试了一下安卓系统上也是没有问题的,比如在微信中打开的效果如下

1CSS3::target-text セレクターの新機能について 1 つの記事で説明します

默认是一个黄色背景(貌似无法自定义),点击任意地方就消失了。

比较适合在阅读一本书时,想分享某一章节的某一小段精彩文本给他人,这样就能快速定位到分享的地方了,还能高亮显示。是不是很方便呢?

五、简单总结一下

详细通过本文,应该可以了解到::target-text是什么了吧?下面简单总结一下

  • ::target-text 和 :target 类似,都可以跳转到指定位置

  • ::target-text 无需 id,可以指定任意文本

  • 地址栏匹配规则是 #:~:text=[prefix-,] textStart [,textEnd] [,-suffix],只有 textStart 是必填,其他都是可选

  • 浏览器支持“复制指向突出显示的内容的链接”操作,可以不必手动拼接

  • 兼容性有点差,安卓用户可以使用

当然这本身是一个渐进增强的属性,能够支持体验更好,不支持也没什么大事。最后,如果觉得还不错,对你有帮助的话,欢迎点赞、收藏、转发!

(学习视频分享:web前端

以上がCSS3::target-text セレクターの新機能について 1 つの記事で説明しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はjuejin.cnで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。