Custom highlights
::highlight() は CSS の擬似要素で、スタイルをカスタムハイライトに適用します。
カスタムハイライトは、 Range オブジェクトの集合であり、 HighlightRegistry を使用してウェブページに登録されます。
::highlight() 擬似要素は、すべての表示強調擬似要素に共通する特別な継承モデルに従います。この継承の仕組みの詳細については、表示強調擬似要素の継承の節を参照してください。
対応ブラウザ
| 機能 | デスクトップ | モバイル | ||||
|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Safari | Chrome Android | Safari iOS | |
| 105 | 105 | 140 | 17.2 | 105 | 17.2 | |
| DOM API | ||||||
| highlights は CSS インターフェイスは静的な読み取り専用プロパティであり、csscustomhighlight_api を使用して任意のテキスト範囲をスタイル設定するために用いる HighlightRegistry へのアクセス手段を提供します。 | 105 | 105 | 140 | 17.2 | 105 | 17.2 |
| Highlight は CSS カスタムハイライト API のインターフェイスで、この API で使用する Range インスタンスの集合を表すために使用します。 | 105 | 105 | 140 | 17.2 | 105 | 17.2 |
@@iterator [シンボル.イテレータ] | 105 | 105 | 140 | 17.2 | 105 | 17.2 |
| add() は Highlight インターフェイスのメソッドで、 csscustomhighlight_api を使用してスタイル設定される、新しい Range オブジェクトをハイライトに追加します。 | 105 | 105 | 140 | 17.2 | 105 | 17.2 |
| clear() は Highlight インターフェイスのメソッドで、 Highlight オブジェクトからすべての Range オブジェクトを除去します。 | 105 | 105 | 140 | 17.2 | 105 | 17.2 |
| delete() は Highlight インターフェイスのメソッドで、 Highlight オブジェクトから特定の Range オブジェクトを除去します。 | 105 | 105 | 140 | 17.2 | 105 | 17.2 |
| entries() は Highlight インターフェイスのメソッドで、新しいイテレーターオブジェクトを返します。これは、この Highlight オブジェクト内の各 Range オブジェクトを」配列 [range, range] の形で、挿入順に反復処理します。 | 105 | 105 | 140 | 17.2 | 105 | 17.2 |
| forEach() は Highlight インターフェイスのメソッドで、Highlight オブジェクト内の各 Range オブジェクトに対して、指定された関数を、挿入順に 1 回ずつ実行します。 | 105 | 105 | 140 | 17.2 | 105 | 17.2 |
| has() は Highlight インターフェイスのメソッドで、 Range オブジェクトが Highlight オブジェクトに存在するかどうかを示す論理値を返します。 | 105 | 105 | 140 | 17.2 | 105 | 17.2 |
| Highlight() コンストラクターは、新しく構築された Highlight オブジェクトを返します。これは Range オブジェクトの集合を保持することができ、 csscustomhighlight_api を用いてスタイル設定することができます。 | 105 | 105 | 140 | 17.2 | 105 | 17.2 |
| keys() は Highlight インターフェイスのメソッドで、 Highlight.values() メソッドの別名です。 | 105 | 105 | 140 | 17.2 | 105 | 17.2 |
| 文書内で重複する Range オブジェクトを作成することができます。 | 105 | 105 | 140 | 17.2 | 105 | 17.2 |
| size プロパティは、 Highlight オブジェクト内にある Range オブジェクトの数を返します。 | 105 | 105 | 140 | 17.2 | 105 | 17.2 |
| type は Highlight インターフェイスのプロパティは、ハイライトの意味を指定するために使用される列挙型Stringです。これにより、スクリーンリーダーなどの支援技術は、ハイライトをユーザーに公開する際にこの意味を記載することができます。 | 105 | 105 | 140 | 17.2 | 105 | 17.2 |
| values() は Highlight インターフェイスのメソッドで、Highlight オブジェクト内のすべての Range オブジェクトの値を挿入順に含む新しいイテレーターオブジェクトを返します。 | 105 | 105 | 140 | 17.2 | 105 | 17.2 |
| HighlightRegistry は CSS カスタムハイライト API のインターフェイスで、 API を用いて Highlight オブジェクトをスタイル設定するために使用します。 これは CSS.highlights_static からアクセスできます。 | 105 | 105 | 140 | 17.2 | 105 | 17.2 |
@@iterator [シンボル.イテレータ] | 105 | 105 | 140 | 17.2 | 105 | 17.2 |
| clear() は HighlightRegistry インターフェイスのメソッドで、この HighlightRegistry からすべての Highlight オブジェクトを除去します。 | 105 | 105 | 140 | 17.2 | 105 | 17.2 |
| delete() は HighlightRegistry インターフェイスのメソッドで、この HighlightRegistry から名前付き Highlight オブジェクトを除去します。 | 105 | 105 | 140 | 17.2 | 105 | 17.2 |
| entries() は HighlightRegistry Hインターフェイスのメソッドで、 HighlightRegistry オブジェクト内の各要素の [name, highlight] ペアを挿入順に反復処理する、新しいイテレーターオブジェクトを返します。 | 105 | 105 | 140 | 17.2 | 105 | 17.2 |
| forEach() は HighlightRegistry インターフェイスのメソッドで、レジストリーのすべての Highlight オブジェクトに対して、挿入順に 1 回ずつ、指定された関数を実行します。 | 105 | 105 | 140 | 17.2 | 105 | 17.2 |
| get() は HighlightRegistry インターフェイスのメソッドで、このレジストリーから名前付き Highlight オブジェクトを返します。 | 105 | 105 | 140 | 17.2 | 105 | 17.2 |
| has() は HighlightRegistry インターフェイスのメソッドで、指定された名前の Highlight オブジェクトがこのレジストリーに存在するかどうかを示す論理値を返します。 | 105 | 105 | 140 | 17.2 | 105 | 17.2 |
| keys() は HighlightRegistry インターフェイスのメソッドで、この HighlightRegistry オブジェクト内のすべての Highlight オブジェクトのキーを挿入順で含む新しいイテレーターオブジェクトを返します。 | 105 | 105 | 140 | 17.2 | 105 | 17.2 |
| set() は HighlightRegistry インターフェイスのメソッドで、 Highlight オブジェクトを指定した名前でレジストリーに追加または更新します。 | 105 | 105 | 140 | 17.2 | 105 | 17.2 |
| size プロパティは、 HighlightRegistry の中にある Highlight オブジェクトの数を返します。 | 105 | 105 | 140 | 17.2 | 105 | 17.2 |
| values() は HighlightRegistry インターフェイスのメソッドで、 HighlightRegistry オブジェクト内のすべての Highlight オブジェクトの値を挿入順に含む新しいイテレーターオブジェクトを返します。 | 105 | 105 | 140 | 17.2 | 105 | 17.2 |
- このブラウザでは部分的にしか実装されていません
- まだ「text-shadow」とは併用できません。 バグ 1845447 を参照してください。
- Firefox 146 以前では、「text-decoration」と併用できません。 バグ 1845446 を参照してください。
- このスタイルは、`user-select: none` と組み合わせると無視されます。 バグ 278455 を参照してください。
- このスタイルは、`user-select: none` と組み合わせると無視されます。 バグ 278455 を参照してください。
基本構文
::highlight(search-result) {
background-color: #ffeb3b;
color: black;
}
::highlight(spelling-error) {
text-decoration: wavy underline red;
} ライブデモ
実務での使いどころ
-
検索結果のハイライト表示
ページ内検索の結果をDOM構造を変えずにハイライトし、パフォーマンスを維持しながら視覚的フィードバックを提供します。
注意点
- Firefoxでは2026年3月時点で未サポートです。また、::highlight()で適用できるプロパティは限定されています。
アクセシビリティ
- ハイライトのカラーコントラスト比がWCAGの基準を満たしていることを確認し、色のみに依存しないUI設計を心がけてください。