1. Web
  2. CSS
  3. ::highlight()

Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten. Erfahre mehr über dieses Experiment.

View in English Always switch to English

::highlight()

Limited availability

This feature is not Baseline because it does not work in some of the most widely-used browsers.

Das ::highlight() CSS Pseudo-Element wendet Stile auf ein benutzerdefiniertes Highlight an.

Ein benutzerdefiniertes Highlight ist eine Sammlung von Range-Objekten und wird auf einer Webseite mit dem HighlightRegistry registriert.

Das ::highlight() Pseudo-Element folgt einem speziellen Vererbungsmuster, das allen Highlight-Pseudo-Elementen gemeinsam ist. Weitere Details zur Funktionsweise dieser Vererbung finden Sie im Abschnitt Highlight-Pseudo-Elemente: Vererbung.

Erlaubte Eigenschaften

Nur bestimmte CSS-Eigenschaften können mit ::highlight() verwendet werden:

Insbesondere wird background-image ignoriert.

Syntax

css
::highlight(custom-highlight-name)

Beispiele

Zeichen hervorheben

HTML

html
<p id="rainbow-text">CSS Custom Highlight API rainbow</p>

CSS

css
#rainbow-text {
 font-family: monospace;
 font-size: 1.5rem;
}
::highlight(rainbow-color-1) {
 color: violet;
 text-decoration: underline;
}
::highlight(rainbow-color-2) {
 color: purple;
 text-decoration: underline;
}
::highlight(rainbow-color-3) {
 color: blue;
 text-decoration: underline;
}
::highlight(rainbow-color-4) {
 color: green;
 text-decoration: underline;
}
::highlight(rainbow-color-5) {
 color: yellow;
 text-decoration: underline;
}
::highlight(rainbow-color-6) {
 color: orange;
 text-decoration: underline;
}
::highlight(rainbow-color-7) {
 color: red;
 text-decoration: underline;
}

JavaScript

js
const textNode = document.getElementById("rainbow-text").firstChild;
if (!CSS.highlights) {
 textNode.textContent =
 "The CSS Custom Highlight API is not supported in this browser!";
}
// Create and register highlights for each color in the rainbow.
const highlights = [];
for (let i = 0; i < 7; i++) {
 // Create a new highlight for this color.
 const colorHighlight = new Highlight();
 highlights.push(colorHighlight);
 // Register this highlight under a custom name.
 CSS.highlights.set(`rainbow-color-${i + 1}`, colorHighlight);
}
// Iterate over the text, character by character.
for (let i = 0; i < textNode.textContent.length; i++) {
 // Create a new range just for this character.
 const range = new Range();
 range.setStart(textNode, i);
 range.setEnd(textNode, i + 1);
 // Add the range to the next available highlight,
 // looping back to the first one once we've reached the 7th.
 highlights[i % 7].add(range);
}

Ergebnis

Spezifikationen

Specification
CSS Custom Highlight API Module Level 1
# custom-highlight-pseudo
CSS Pseudo-Elements Module Level 4
# selectordef-highlight-custom-ident

Browser-Kompatibilität

Siehe auch

Help improve MDN

Learn how to contribute Diese Seite wurde automatisch aus dem Englischen übersetzt.

AltStyle によって変換されたページ (->オリジナル) /