docs.rodeo

MDN Web Docs mirror

Highlight

{{APIRef("CSS Custom Highlight API")}} 

The Highlight interface of the CSS Custom Highlight API is used to represent a collection of {{domxref("Range")}}  instances to be styled using the API.

To style arbitrary ranges in a page, instantiate a new Highlight object, add one or more Range objects to it, and register it using the {{domxref("HighlightRegistry")}} .

A Highlight instance is a Set-like object that can hold one or more Range objects.

{{InheritanceDiagram}} 

Constructor

Instance properties

The Highlight interface doesn’t inherit any properties.

Instance methods

The Highlight interface doesn’t inherit any methods.

Examples

The following example demonstrates how specific parts of a block of text can be highlighted.

<p class="foo">Lorem ipsum dolor sit amet consectetur adipisicing elit. Exercitationem
  sapiente non eum facere? Nam rem hic culpa, ipsa rerum ab itaque consectetur
  molestiae dolores vitae! Quo ex explicabo tempore? Tenetur.</p>

This JavaScript code creates ranges, instantiates a new Highlight object for them, and registers it to be styled on the page:

const parentNode = document.querySelector(".foo");
const textNode = parentNode.firstChild;

// Create a couple of ranges.
const range1 = new Range();
range1.setStart(textNode, 6);
range1.setEnd(textNode, 21);

const range2 = new Range();
range2.setStart(textNode, 57);
range2.setEnd(textNode, 71);

// Create a custom highlight for these ranges.
const highlight = new Highlight(range1, range2);

// Register the ranges in the HighlightRegistry.
CSS.highlights.set("my-custom-highlight", highlight);

The following CSS code snippet demonstrates how to style the registered custom highlight by using the {{cssxref("::highlight")}}  pseudo-element:

::highlight(my-custom-highlight) {
  background-color: peachpuff;
}

Result

{{EmbedLiveSample("example", "100%", '100')}} 

Specifications

{{Specifications}} 

Browser compatibility

{{Compat}} 

See also

In this article

View on MDN