Summary
The ::selection CSS pseudo-element applies rules to the portion of a document that has been highlighted (e.g. selected with the mouse or another pointing device) by the user.
Only a small subset of CSS properties can be used in a rule using ::selection in its selector: color, background-color, cursor, outline, text-decoration, text-emphasis-color and text-shadow. Note that, in particular, background-image is ignored, like any other property.
text-shadow in ::selection is supported by Chrome, Safari and Firefox 17+.
The
::selection pseudo-element has been added again in Pseudo-Elements Level 4.Example
Gecko is the only engine requiring the prefix. Due to the fact that the CSS parsing rules require dropping the whole rule when encountering an invalid pseudo-element, two separate rules must be written: ::-moz-selection, ::selection {...}. The rule would be dropped on non-Gecko browsers as ::-moz-selection is invalid on them.
HTML
<div>This is some text for you to test CSS's ::selection pseudo-class.</div> <p>Also try to select some text in this <p></p>
CSS
/* draw any selected text yellow on red background */
::-moz-selection {
color: gold; background: red;
}
::selection {
color: gold; background: red;
}
/* draw selected text in a paragraph white on black */
p::-moz-selection {
color: white;
background: black;
}
p::selection {
color: white;
background: black;
}
Output
Specifications
| Specification | Status | Comment |
|---|---|---|
| CSS Pseudo-Elements Level 4 The definition of '::selection' in that specification. |
Working Draft | Initial definition |
The ::selection CSS pseudo-element was drafted for CSS Selectors Level 3 but removed before it reached the Recommendation status. It was readded as part of the Pseudo-Elements Level 4 draft.
Browser compatibility
| Feature | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari |
|---|---|---|---|---|---|
| Basic support | 1 | 1.0 -moz[1] | 9 | 9.5 | 1.1 |
| Feature | Android | Chrome for Android | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile |
|---|---|---|---|---|---|---|
| Basic support | ? | ? | ? | ? | ? | ? |
[1] Gecko currently only supports the prefixed version ::-moz-selection. It will be unprefixed in bug 509958.
