DEV Community

Chris Bongers
Chris Bongers

Posted on • Originally published at daily-dev-tips.com on

CSS Pseudo-elements

Yesterday we briefly touched on pseudo-elements when creating our custom checkbox

But let's dive deeper into these awesome features of CSS.
Pseudo-elements allow you to create/manipulate an original element. Without affecting that one.

They can be used to style a specific part of an element, like the first letter or add content before or after!

Pseudo-elements always start with ::!

First-line pseudo-element

With the first-line pseudo-element, we can manipulate the view of the first line of a specific element.

See the following example:

<p>
  Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor
  incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud
  exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure
  dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.
  Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt
  mollit anim id est laborum.
</p>
Enter fullscreen mode Exit fullscreen mode
p::first-line {
  color: #ff0000;
  font-variant: small-caps;
}
Enter fullscreen mode Exit fullscreen mode

This will result into the following:

See the Pen First-line pseudo-element by Chris Bongers (@rebelchris) on CodePen.

First-letter pseudo-element

Much like the above one this one is used to style a part of an element, but in this case only the first letter.

The html we can re-use

<p>
  Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor
  incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud
  exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure
  dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.
  Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt
  mollit anim id est laborum.
</p>
Enter fullscreen mode Exit fullscreen mode
p::first-letter {
  color: teal;
  font-family: Verdana;
  font-size: 36px;
  display: inline-block;
  float: left;
  padding-right: 5px;
}
Enter fullscreen mode Exit fullscreen mode

You will get this result:

See the Pen First-letter pseudo-element by Chris Bongers (@rebelchris) on CodePen.

Before pseudo-element

The before pseudo-element we saw in action yesterday when we created custom checkboxes.
It can we used in many ways though!

<a href="http://daily-dev-tips.com">Daily Dev Tips</a>
<br />
<a href="https://twitter.com/DailyDevTips1">Twitter</a>
Enter fullscreen mode Exit fullscreen mode
a::before {
  content: '⚓️';
}
Enter fullscreen mode Exit fullscreen mode

So let's say we want to add an anchor icon to every one of our links, it's just as easy as this!

Check out this Codepen example:

See the Pen Before pseudo-element by Chris Bongers (@rebelchris) on CodePen.

Note: The before and after pseudo-elements always need content to render!

After pseudo-element

The after is basically used in the same way as the before but will place the content after the element.

<a href="http://daily-dev-tips.com">Daily Dev Tips</a>
<br />
<a href="https://twitter.com/DailyDevTips1">Twitter</a>
Enter fullscreen mode Exit fullscreen mode
a::after {
  content: ' (Read more)';
}
Enter fullscreen mode Exit fullscreen mode

This will generate the following:

See the Pen After pseudo-element by Chris Bongers (@rebelchris) on CodePen.

Selection pseudo-element

Another cool one is the selection pseudo-element. It will trigger when someone selects text.

<p>
  Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor
  incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud
  exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure
  dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.
  Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt
  mollit anim id est laborum.
</p>
Enter fullscreen mode Exit fullscreen mode
p::selection {
  background: teal;
  color: #fff;
}
Enter fullscreen mode Exit fullscreen mode

Now try and select a piece of this text; it should show a teal background with white text!

See the Pen Selection pseudo-element by Chris Bongers (@rebelchris) on CodePen.

CSS Pseudo-elements summary

To summarise,
Pseudo-elements are used to modify a part of an element, always start with :: and we can use the following pseudo-elements:

  • ::first-line
  • ::first-letter
  • ::before
  • ::after
  • ::selection

Thank you for reading, and let's connect!

Thank you for reading my blog, feel free to subscribe to my email newsletter and connect on Facebook or Twitter

Top comments (0)