::highlight()
Limited availability
This feature is not Baseline because it does not work in some of the most widely-used browsers.
Das ::highlight() CSS Pseudoelement wendet Stile auf ein benutzerdefiniertes Highlight an.
Ein benutzerdefiniertes Highlight ist eine Sammlung von Range-Objekten und wird auf einer Webseite mithilfe des HighlightRegistry registriert.
Das ::highlight()-Pseudoelement folgt einem speziellen Vererbungsmuster, das allen Highlight-Pseudoelementen gemeinsam ist. Für mehr Details, wie diese Vererbung funktioniert, siehe den Abschnitt Highlight-Pseudoelemente-Vererbung.
Erlaubte Eigenschaften
Nur bestimmte CSS-Eigenschaften können mit ::highlight() verwendet werden:
colorbackground-colortext-decorationund die dazugehörigen Eigenschaftentext-shadow-webkit-text-stroke-color,-webkit-text-fill-colorund-webkit-text-stroke-width
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
- CSS Custom Highlight API-Modul
- CSS Custom Highlight API
- CSS Pseudoelemente-Modul