`::highlight()` псевдоэлемент CSS
Базовая поддержка Недавно стал доступен
Эта функция работает в последних версиях устройств и браузеров. Она может не работать на старых устройствах и в старых версиях браузеров. Она поддерживается браузерами с марта 2026 года.
::highlight() — это CSS псевдоэлемент, который применяет стили к пользовательской подсветке.
Пользовательская подсветка — это набор объектов AbstractRange, который регистрируется на веб-странице с помощью HighlightRegistry.
Псевдоэлемент ::highlight() использует специальную модель наследования, общую для всех псевдоэлементов подсветки. Подробнее о работе этой модели см. в разделе Наследование псевдоэлементов подсветки.
Допустимые свойства
С ::highlight() можно использовать только определённые свойства CSS:
colorbackground-color-
text-decorationи связанные с ним свойства text-shadow-
-webkit-text-stroke-color,-webkit-text-fill-colorи-webkit-text-stroke-width
В частности, background-image игнорируется.
Синтаксис
::highlight(custom-highlight-name)
Примеры
Подсветка символов
HTML
<p id="rainbow-text">CSS Custom Highlight API rainbow</p>
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
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);
}
Результат
Спецификации
| Спецификация |
|---|
| Модуль CSS Custom Highlight API, уровень 1 # custom-highlight-pseudo |
| Модуль CSS Pseudo-Elements, уровень 4 # selectordef-highlight-custom-ident |
Совместимость с браузерами
| Настольные | Мобильные | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome для Android | Firefox для Android | Opera для Android | Safari на iOS | Samsung Internet | WebView для Android | WebView на iOS | |
highlight |
105 |
105 |
149
140–149До Firefox 149 нельзя использовать сtext-shadow. См. ошибку 1845447.До Firefox 146 нельзя использовать с text-decoration. См. ошибку 1845446. |
91 |
105 |
149
140–149До Firefox для Android 149 нельзя использовать сtext-shadow. См. ошибку 1845447.До Firefox для Android 146 нельзя использовать с text-decoration. См. ошибку 1845446. |
72 |
20.0 |
105 |
|||
См. также
© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/CSS/Reference/Selectors/::highlight