The ::selection
CSS pseudo-element applies styles to the portion of a document that has been highlighted by the user (such as with the mouse).
Only a small subset of CSS properties can be used with the ::selection
pseudo-element:
Note that, in particular, background-image
is ignored.
Syntax
/* Firefox syntax */ ::-moz-selection ::selection
Example
HTML
<div>This text has special styles when you highlight it.</div> <p>Also try selecting text in this paragraph.</p>
CSS
/* Make selected text gold on a red background */ ::-moz-selection { color: gold; background: red; } ::selection { color: gold; background: red; } /* Make selected text in a paragraph white on a blue background */ p::-moz-selection { color: white; background: blue; } p::selection { color: white; background: blue; }
Result
Specifications
Specification | Status | Comment |
---|---|---|
CSS Pseudo-Elements Level 4 The definition of '::selection' in that specification. |
Working Draft | Initial definition |
Note: Though ::selection
was present in drafts of CSS Selectors Level 3, it was removed during the Candidate Recommendation phase because its behavior was under-specified (especially with nested elements) and interoperability wasn't achieved (based on discussion in the W3C Style mailing list). The ::selection
pseudo-element was brought back in Pseudo-Elements Level 4.
Browser compatibility
Note: text-shadow
in ::selection
is supported by Chrome, Safari, and Firefox 17+.
Feature | Chrome | Edge | Firefox (Gecko) | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|---|
Basic support | 1 | (Yes) | 1.0 -moz[1] | 9 | 9.5 | 1.1 |
Feature | Android | Chrome for Android | Edge | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile |
---|---|---|---|---|---|---|---|
Basic support | ? | ? | (Yes) | ? | ? | ? | ? |
[1] Gecko currently only supports the prefixed version ::-moz-selection. It will be unprefixed in bug 509958.