:current
Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.
The :current CSS pseudo-class selector represents an element or the ancestor of an element that is currently being displayed or highlighted.
Syntax
:current {
/* ... */
}
:current(<compound-selector-list>) {
/* ... */
}
Description
The :current pseudo-class is used to represent the "currently displayed" element out of a series of elements.
This can mean "current" in terms of time: :current can be used to target the currently displayed captions or subtitles (represented using WebVTT) that are associated with a playing video.
It can also refer to the currently highlighted element in a series. For example, :current can be combined with the ::search-text pseudo-element to provide specific styles to the currently-focused search result from the browser's "Find in page" text search feature.
For example:
p::search-text {
color: white;
background-color: purple;
}
p::search-text:current {
background-color: crimson;
}
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.
Styling currently-shown WebVTT subtitles
CSS
:current(p, span) {
background-color: yellow;
}
HTML
<video controls preload="metadata">
<source src="video.mp4" type="video/mp4" />
<source src="video.webm" type="video/webm" />
<track
label="English"
kind="subtitles"
srclang="en"
src="subtitles.vtt"
default />
</video>
WebVTT
WEBVTT FILE 1 00:00:03.500 --> 00:00:05.000 This is the first caption 2 00:00:06.000 --> 00:00:09.000 This is the second caption 3 00:00:11.000 --> 00:00:19.000 This is the third caption