Michael Gearon

The Pseudo Element

Michael Gearon ·

Not to be mistaken with pseudo-classes, pseudo-elements allow you to style certain parts of a document. We can style after or before an element, the first letter or first line, the selection and the backdrop. Originally in CSS1 and CSS2 the pseudo -elements started with a colon (:) which was the same as pseudo-classes. To separate the two in CSS3 pseudo elements now start with a double colon (::) this is not supported in all versions of  Internet Explorer, and you can still use one colon.

Why is it called a Pseudo Element?

The word pseudo is a Greek word that stands for “lying, false” and an element in HTML could be a paragraph or a header. Put the two together and we create an alternative description of a false paragraph or a false header and this is what the pseudo-element is, a fake element which alters your HTML after load.



The first line pseudo-element targets the first formatted line of an element, by targeting the first line you can style this differently to the rest of the paragraph for example make it larger, different colour or italicised. I personally don’t see a lot of useful implementations  of this element, unless you are trying to achieve a magazine/newspaper layout then this would a great option.

See the Pen oXPgLM by Michael Gearon (@michaelgearon) on CodePen.


The ‘::first-letter’ is really useful to achieve results similar to those you see in newspapers and magazines. You can create “drop caps” and “initial caps” using the first letter pseudo element.

See the Pen eNLmgR by Michael Gearon (@michaelgearon) on CodePen.

::before and ::after

Self explanatory the before and after pseudo elements matches a virtual last child of the selected element. In this example we add a pound sign before the list item and ‘g’ for grams at the end and add a colour. It is interesting to note if you add content in using CSS that you can’t highlight it, so take this into consideration when placing in content using CSS.


The placeholder text in an input field styling can be altered by using the ::placeholder pseudo-element. This could be useful to match the website styling to the inputs on a form

See the Pen Pseudo Element Placeholder by Michael Gearon (@michaelgearon) on CodePen.

The Final Result

See the Pen Pseudo Elements by Michael Gearon (@michaelgearon) on CodePen.

Michael Gearon

Written by
Michael Gearon

Michael Gearon is a UX Designer at BrandContent. Specialising in voice assistants and CRO, I have a wealth of experience in UX, UI and website design. Based in Cardiff, South Wales Mike can help local businesses with their online presence.