Spec-Zone.ru › CSS

::highlight()

Ограниченное использование

Эта функция не относится к Baseline, так как она не работает в некоторых из самых широко используемых браузеров.

  • Узнать больше
  • Показать полную совместимость
  • Отправить отзыв

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

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

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

Только определенные свойства CSS могут использоваться с ::highlight():

  • 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: #ad26ad;
  text-decoration: underline;
}
::highlight(rainbow-color-2) {
  color: #5d0a99;
  text-decoration: underline;
}
::highlight(rainbow-color-3) {
  color: #0000ff;
  text-decoration: underline;
}
::highlight(rainbow-color-4) {
  color: #07c607;
  text-decoration: underline;
}
::highlight(rainbow-color-5) {
  color: #b3b308;
  text-decoration: underline;
}
::highlight(rainbow-color-6) {
  color: #ffa500;
  text-decoration: underline;
}
::highlight(rainbow-color-7) {
  color: #ff0000;
  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 Module Level 1
# custom-highlight-pseudo

Совместимость с браузерами

Рабочие столы Мобильные устройства
Chrome Edge Firefox Opera Safari Chrome Android Firefox for Android Opera Android Safari на iOS Samsung Internet WebView Android
::highlight 105 105
Предварительный просмотрНе может пока использоваться с text-decoration и text-shadow.
91 17.2 105
НетНе может пока использоваться с text-decoration и text-shadow.
72 17.2 20.0 105

См. также

  • CSS API пользовательского выделения
  • Модуль CSS псевдоэлементов

© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/CSS/::highlight

Spec-Zone.ru

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