Pseudo-Class
A pseudo-class represents a state of a selector like :hover, :active, :last-child,etc. These start with a single colon(:).
The syntax of CSS pseudo-class is as follows −
:pseudo-class{
attribute: /*value*/
}Pseudo-Element
Similarly, a pseudo-element is used to select virtual elements like ::after, ::before, ::first-line, etc.
These start with a double colon(::).
The syntax of CSS pseudo-element is as follows −
::pseudo-element{
attribute: /*value*/
}Example
The following examples illustrate CSS pseudo-class and pseudo-element property.
<!DOCTYPE html>
<html>
<head>
<style>
a:hover{
padding: 3%;
font-size:1.4em;
color: tomato;
background: bisque;
}
</style>
</head>
<body>
<p>You're somebody else</p>
<a href=#>Dummy link 1</a>
<a href=#>Dummy link 2</a>
</body>
</html>Output
This will produce the following result −

Example
<!DOCTYPE html>
<html>
<head>
<style>
p::after {
content: " BOOM!";
background: hotpink;
}
p:last-child {
font-size: 1.4em;
color: red;
}
</style>
</head>
<body>
<p>Anymore Snare?</p>
<p>Donec in semper diam. Morbi sollicitudin sed eros nec elementum. Praesent eget nisl vitaeneque consectetur tincidunt. Ut molestie vulputate sem, nec convallis odio molestie nec.</p>
<p>Hit</p>
<p>Pop</p>
</body>
</html>Output
This will produce the following result −
