Pseudo-elements

Pseudo-elements allow to manipulate elements that don’t exist in the document tree. It can be the content of the document element (first line, first letter) or element that does not exit in document tree but can be create through the pseudo-element . For example first line, first letter can be styled by using pseudo-elements like ::first-line ::first-letter . Pseudo-elements ::before, ::after can create element in document tree and provide styles to this element.

Pseudo-elements:

  • do not appear in the document tree;
  • only one pseudo-element may appear per selector, and if present it must appear after the sequence of simple selectors that represents the subjects of the selector.
  • names are case-insensitive

The syntax of pseudo-elements:

selector::pseudo-element {
    property:value
}

Pseudo-element notation uses the single and double colon, so ::first-line and :first-line is the same pseudo-element.
The single colon was used in CSS2 and CSS1 but in CSS3 was replaced by the double colon. The single-colon syntax is still considered for backward compatibility.

List of the pseudo-elements:

  • ::first-line (:first-line)
  • ::first-letter (:first-letter)
  • ::before (:before)
  • ::after (:after)
  • ::selection (only with the double colons)
  • ::placeholder experimental technology
  • ::marker experimental technology
  • ::spelling-error experimental technology
  • ::grammar-error experimental technology

Examples:

Example 1

Pseudo elements can be combined with CSS classes:

p.pe-entry::first-letter{
    color:#62a2bf;
    font-size:2em;
}

Example 2

Several pseudo elements can be combined

p.pe-entry::first-letter{
    color:#62a2bf;
    font-size:2em;
}
p.pe-entry::first-line {
    color:#4bb29e;
    font-size:0.8em;
}

Stick butt in face stare at wall turn and meow stare at wall some more meow again continue staring or burrow under covers, but stare out the window so purr for no reason lounge in doorway so wake up human for food at 4am. Peer out window, chatter at birds, lure them to mouth eat and than sleep on your face for refuse to leave cardboard box. Meow for food, then when human fills food dish, take a few bites of food and continue meowing eat grass, throw it back up kick up litter cough fur ball yet rub face on owner scratch the furniture or purr while eating.

Example 3

Pseudo elements can be combined with CSS pseudo-classes

p.peh-entry:hover::after {
    content:'Content displays on mousover';
    color:#4bb29e;
    font-size:1em;
}

Stick butt in face stare at wall turn and meow stare at wall some more meow again continue staring or burrow under covers, but stare out the window so purr for no reason lounge in doorway so wake up human for food at 4am.

Notes:

Combination pseudo classes with ::first-letter not working in Firefox browser.
Unfortunately combination pseudo classes with ::first-line pseudo element is not working in Chrome (tested chrome 47), Firefox (tested FF 43), Opera (tested Opera 34), except Internet Explorer (testing IE9, IE11).

Resources

Browser compatibility

Internet Explorer
8.0 :pseudo-element
9:0 :pseudo-element | ::pseudo-element