Spec-Zone.ru › CSS

`::highlight()` псевдоэлемент CSS

Базовая поддержка Недавно стал доступен

Эта функция работает в последних версиях устройств и браузеров. Она может не работать на старых устройствах и в старых версиях браузеров. Она поддерживается браузерами с марта 2026 года.

::highlight() — это CSS псевдоэлемент, который применяет стили к пользовательской подсветке.

Пользовательская подсветка — это набор объектов AbstractRange, который регистрируется на веб-странице с помощью HighlightRegistry.

Псевдоэлемент ::highlight() использует специальную модель наследования, общую для всех псевдоэлементов подсветки. Подробнее о работе этой модели см. в разделе Наследование псевдоэлементов подсветки.

Допустимые свойства

С ::highlight() можно использовать только определённые свойства CSS:

  • color
  • background-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
17.2Стиль игнорируется при использовании вместе с user-select: none. См. ошибку 278455.
105
149
140–149До Firefox для Android 149 нельзя использовать с text-shadow. См. ошибку 1845447.
До Firefox для Android 146 нельзя использовать с text-decoration. См. ошибку 1845446.
72
17.2Стиль игнорируется при использовании вместе с user-select: none. См. ошибку 278455.
20.0
105
17.2Стиль игнорируется при использовании вместе с user-select: none. См. ошибку 278455.

См. также

  • модуль CSS Custom Highlight API
  • CSS Custom Highlight API
  • модуль псевдоэлементов CSS

© 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API