Syntax
The syntax of pseudo-elements:
selector:pseudo-element {property: value} |
CSS classes can also be used with pseudo-elements:
selector.class:pseudo-element {property: value} |
The :first-line Pseudo-element
The "first-line" pseudo-element is used to add special styles to the first line
of the text in a selector:
p:first-line {color:#0000ff;font-variant:small-caps}<p>Some text that ends up on two or more lines</p> |
The output could be something like this:
|
Some text that ends
up on two or more lines |
In the example above the browser displays the first line formatted according
to the "first-line" pseudo element. Where the browser breaks the line
depends on the size of the browser window.
Note: The "first-line" pseudo-element can only be used with block-level
elements.
Note: The following properties apply to the "first-line" pseudo-element:
- font properties
- color properties
- background properties
- word-spacing
- letter-spacing
- text-decoration
- vertical-align
- text-transform
- line-height
- clear
The :first-letter Pseudo-element
The "first-letter" pseudo-element is used to add special style to the first
letter of the text in a selector:
p:first-letter {color:#ff0000;font-size:xx-large}<p>The first words of an article...</p> |
The output could be something like this:
|
The first words of an article...
|
Note:
The "first-letter" pseudo-element can only be used with block-level elements.
Note: The following properties apply to the "first-letter" pseudo- element:
- font properties
- color properties
- background properties
- margin properties
- padding properties
- border properties
- text-decoration
- vertical-align (only if "float" is "none")
- text-transform
- line-height
- float
- clear
Pseudo-elements and CSS Classes
Pseudo-elements can be combined with CSS classes:
p.article:first-letter {color:#ff0000}<p class="article">A paragraph in an article</p> |
The example above will make the first letter of all paragraphs with class="article" red.
Multiple Pseudo-elements
Several pseudo-elements can be combined:
p:first-letter {color:#ff0000;font-size:xx-large}
p:first-line {color:#0000ff}<p>The first words of an article...</p> |
The output could be something like this:
|
The first
words of an article... |
In the example above the first letter of the paragraph will be red with a font size of 24pt. The rest of the first line
would be blue while the rest of the paragraph would be the default color.
CSS2 - The :before Pseudo-element
The ":before" pseudo-element can be used to insert some content before
the content of an element.
The style below will play a sound before each occurrence of an <h1> element:
|
h1:before |
CSS2 - The :after Pseudo-element
The ":after" pseudo-element can be used to insert some content
after the content of an element.
The style below will play a sound after each occurrence of an <h1> element:
|
h1:after content: url(beep.wav) |
Pseudo-elements
Browser support: IE: Internet Explorer, F: Firefox, N: Netscape.
W3C: The number in the "W3C" column indicates in which CSS recommendation
the property is defined (CSS1 or CSS2).
| Pseudo-element | Purpose | IE | F | N | W3C |
|---|---|---|---|---|---|
| :first-letter | Adds special style to the first letter of a text |
5 | 1 | 8 | 1 |
| :first-line | Adds special style to the first line of a text |
5 | 1 | 8 | 1 |
| :before | Inserts some content before the content of an element | 1.5 | 8 | 2 | |
| :after | Inserts some content after the content of an element | 1.5 | 8 | 2 |