::search-text
The ::search-text CSS pseudo-element applies styles to search results identified by the user agent's "Find" or "Find in page" text search feature.
Try it
p::search-text {
color: crimson;
background-color: wheat;
}
<p>
Using your browser's "Find in page" functionality, find a word or phrase that
appears in this sentence, and note how, in supporting browsers, each result is
highlighted using the specified custom styles.
</p>
Syntax
::search-text {
/* ... */
}
Description
Most browsers include some kind of in-page text search functionality, usually labelled "Find" or "Find in page". The ::search-text pseudo-element, one of the highlight pseudo-elements, allows you to apply a limited set of styles to the text results highlighted by the browser search functionality.
Not all browsers and browser versions highlight search results using in-page highlights that are stylable with CSS. In such cases, ::search-text may be unimplemented or just ignored.
Using ::search-text as a selector on its own will style browser search results appearing anywhere on a page. If you want to only style browser search results appearing inside certain elements, you can combine ::search-text with other selectors, for example section::search-text.
Additionally, ::search-text can be combined with the :current pseudo-class to provide specific styles to the currently-focused search result, for example:
p::search-text {
color: white;
background-color: purple;
}
p::search-text:current {
background-color: crimson;
}
Inheritance model
The ::search-text pseudo-element follows a special inheritance model common to all highlight pseudo-elements, wherein styles are inherited from both their parent elements and the pseudo-elements of their parents. For more details on how this inheritance works, see the Highlight pseudo-elements inheritance section.
Allowable properties
A limited subset of CSS properties can be used with ::search-text:
colorbackground-color- The
text-decorationshorthand and associated longhand properties:text-decoration-line: thegrammar-error,spelling-error,line-through,none, andunderlinevalues only.text-decoration-colortext-decoration-styletext-decoration-thicknesstext-decoration-skip-ink
text-underline-offsettext-shadow
Accessibility
Override text search result styles sparingly, especially when doing so for purely aesthetic reasons. For people experiencing cognitive concerns or who are less technologically literate, unexpected changes to these styles may hurt their understanding of the functionality.
A primary use case of ::search-text is to increase color contrast compared to the default browser styling. When customizing highlighted text, it is important to ensure that the contrast ratio between the foreground and background colors is great enough for people to be able to perceive the content of the highlighted text.
Examples
>Custom styles for text search results
This example shows how to use ::search-text and :current to create custom styles for your browser's "Find in page" search results.
HTML
The HTML consists of a basic paragraph of text. We won't show the HTML source, both for brevity, and so that it is easier to navigate the search results in the rendered example.
CSS
In our CSS, we start by styling the ::search-text pseudo-element. We give it custom background-color, color, and text-shadow styles.
::search-text {
background-color: purple;
color: white;
text-shadow: 1px 1px 1px black;
}
Finally, we style the currently-focused search result via ::search-text:current, providing it with a different background-color and some text-decoration styles so that it is distinguishable from the rest of the results.
::search-text:current {
background-color: crimson;
text-decoration-line: underline;
text-decoration-color: yellow;
text-decoration-thickness: 3px;
}
Result
The example renders as follows:
Try using the browser's find in page interface to find a word that appears multiple times in the example text, such as "aliquam", "amet", or "tortor". Move between the previous and next results to check out the :current styling.
Specifications
| Specification |
|---|
| CSS Pseudo-Elements Module Level 4> # selectordef-search-text> |