CSSPseudo-Elements Overview

Pseudo-Elements Overview

Pseudo-elements target specific parts of elements, like the first line of text or the before/after content. They're preceded by double colons (::). Pseudo-elements create new elements without HTML markup.

Common Pseudo-Elements

Pseudo-Element

Targets

Example

::before

Before element content

p::before

::after

After element content

p::after

::first-line

First line of text

p::first-line

::first-letter

First letter of text

p::first-letter

::selection

Selected text

p::selection

CSS
/* ::before and ::after create pseudo-elements */
.quote::before {
  content: '"';
  color: gray;
}

.quote::after {
  content: '"';
  color: gray;
}

/* First line styling */
p::first-line {
  font-weight: bold;
  color: #333;
}

/* First letter (drop cap) */
p::first-letter {
  font-size: 2em;
  font-weight: bold;
  float: left;
  margin-right: 0.1em;
}

/* Selected text */
p::selection {
  background-color: yellow;
  color: black;
}
Practical Uses

CSS
/* Add decorative content */
.highlight::before {
  content: '✨ ';
}

.important::after {
  content: ' ⚠️';
}

/* Clearfix technique */
.clearfix::after {
  content: '';
  display: table;
  clear: both;
}

/* Attention grabber */
.new::after {
  content: 'NEW';
  background: red;
  color: white;
  padding: 2px 5px;
  font-size: 12px;
  margin-left: 5px;
}
Note
Pseudo-elements target specific parts of elements or create content. ::before and ::after are most commonly used. They don't add to DOM, keeping HTML clean.
Next
Universal selector: [Universal Selector (*)](/css/universal-selector).