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.