Get to know MDN better
このページはコミュニティーの尽力で英語から翻訳されました。MDN Web Docs コミュニティーについてもっと知り、仲間になるにはこちらから。
Since June 2025, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers.
CSS カスタムハイライト API は、JavaScript を使用して範囲を作成し、CSS を使用してスタイルを設定することにより、文書内の任意のテキスト範囲のスタイル設定を行うためのメカニズムを提供します。
ウェブページ上のテキストの範囲にスタイルを設定することは、とても有用です。例えば、テキスト編集ウェブアプリは、綴りや文法の誤りを強調表示したり、コードエディターは構文エラーを強調表示したりします。
CSS カスタムハイライト API は、::selection、::spelling-error、::grammar-error、::target-text などの他の強調表示擬似要素の概念を拡張し、ブラウザーで定義された範囲に制限されることなく、任意の Range オブジェクトを作成してスタイルを設定する方法を定義します。
CSS カスタムハイライト API を使用すると、ページ内の DOM 構造に影響を与えることなく、テキストの範囲をプログラムで作成し、ハイライトすることができます。
CSS カスタムハイライト API を使用して、ウェブページ上のテキストの範囲にスタイルを設定するには、4 つの段階があります。
最初の段階では、JavaScript で Range オブジェクトを作成して、スタイルを設定するテキストの範囲を定義します。例えば、次のようにします。
2 つ目の段階では、テキストの範囲に対してハイライト (Highlight) オブジェクトを作成します。
複数の範囲を 1 つのハイライトに関連付けることができます。複数のテキストを同じ方法でハイライトしたい場合は、単一のハイライトを作成し、対応する範囲で初期化する必要があります。
しかし、必要に応じてハイライトをいくつでも作成することができます。例えば、各ユーザーが異なるテキストの色を取得する共同エディターを構築する場合、以下のコードスニペットのように、ユーザーごとに 1 つのハイライトを作成することができます。
それぞれのハイライトには、異なるスタイルを設定することができます。
ハイライトを作成したら、 CSS.highlights から利用できる HighlightRegistry を使用してそれらを登録します。
このレジストリーはマップ風 Map オブジェクトであり、次のようにハイライトを名前で登録することができます。
上記のコードスニペットでは、 user-1-highlight および user-2-highlight 文字列は、登録されたハイライトにスタイルを適用するために CSS で使用できるカスタム識別子です。
レジストリーには、必要な数のハイライトを登録することができます。また、ハイライトの除去やレジストリー全体をクリアすることも可能です。
最後のステップは、登録したハイライトのスタイルを設定することです。これは、 ::highlight() 擬似要素を使用して行います。例えば、前回のステップで登録した user-1-highlight ハイライトのスタイルを設定するには、次のようにします。
このインターフェイスは、文書内でスタイルを設定する範囲の集合を表すために使用されます。
HighlightRegistryCSS.highlights でアクセスできる Map 風のオブジェクトで、カスタム識別子でハイライトを登録するために使用されます。
この例では、CSS カスタムハイライト API を使用して検索結果をハイライトする方法を示します。
以下の HTML コードスニペットは、検索フィールドと、いくつかの段落からなる記事定義しています。
JavaScript は、検索フィールドの入力イベントを待ち受けするために使用されます。イベントが発生すると、コードは記事テキスト内で入力テキストと一致する部分を見つけます。次に、一致する範囲を作成し、 CSS カスタムハイライト API を使用して、 search-results ハイライトオブジェクトを作成して登録します。
最後に、ハイライトのスタイルを設定するために、CSS で擬似要素 ::highlight() を使用します。
結果は下記の通りです。検索フィールドにテキストを入力すると、記事内の該当箇所が強調表示されます。
| CSS Custom Highlight API Module Level 1 |
Enable JavaScript to view this browser compatibility table.
Enable JavaScript to view this browser compatibility table.
Enable JavaScript to view this browser compatibility table.
This page was last modified on 2026年2月16日 by MDN contributors.
Your blueprint for a better internet.
Visit Mozilla Corporation’s not-for-profit parent, the Mozilla Foundation.
Portions of this content are ©1998–2026 by individual mozilla.org contributors. Content available under a Creative Commons license.