Introduction
Hey there, π
In this article, we will discuss Pseudo-classes, which are a type of CSS Pseudo selectors. We will start by defining pseudo-classes, listing examples, and building a very simple tooltip hover.
Let's dive right in π
Pseudo-Classes (:)
Pseudo-classes act like classes but they are not actual classes. That is the browser might treat them like classes, but they aren't actual classes.
They are used to select elements only when they are in a particular state.
For example, they can be used to:
- Style an element when it is active
- Style an element when it gets focus
- Style visited and unvisited links differently
The syntax for Pseudo-class selectors is:
selector:pseudo-selector{
property: value;
}
Pseudo-classes cannot work independently, they have to be combined with other selectors using a colon :.
A popular example is the :hover which styles elements when the mouse "hovers" over them.
h1:hover{
background-color: gray;
border-left: 2px solid green;
}
In the example used above:
- The original element is first selected with (
h1) - Then the pseudo-class
:hoveris added to specify the required state. > Note that the colon and the pseudo-class must be written together with no space in between.
The original element only contains the default styling, which is overridden by the pseudo-selector when it is in the specified state. That is an element styled with the :hover will remain normal until the mouse is over it.
Unlike other selectors Pseudo-class names are not case sensitive, that is whether you write
:Hoveror:hoverthe browser will still read it the same way
Examples
There are a lot of pseudo-classes, luckily you don't have to memorize them as most IDEs like VScode provide autocomplete for pseudo-classes.
Pseudo-classes can be general or element specific, that is some pseudo-classes can be used on all elements while others can only work on certain elements.
Examples of pseudo-classes include:
-
:link: this is used to select links on the page that has not been visited. -
:visitedis used to select links on the page that has already been visited. -
:activeis used to select the link that is currently active. > Note: when stylinga:activemust come aftera:linkanda:visitedin order to be effective! -
:focusis used to select the input element that is currently being filled. -
:optionalthis is used to select input elements that are optional. -
:emptyis used to select empty elements. -
:rootis used to select the document's root element.
Visit w3schools for a complete list of pseudo-classes and examples.
How to use pseudo-classes to make a simple tooltip-hover
An example of a tooltip hover is when you hover over an element, and a tooltip is displayed to show you more about the component.
Don't worry if you are a total beginner, I am just showing an example of how pseudo-classes can be used on a webpage.
Steps to making a simple tooltip hove:
-
Write the Html:
<h3 class="element"> Hover over me to see "more". <span class="tooltip">MORE, now you have seen "more"</span> </h3>Here we defined 2 elements an
h3as the parent, and aspanas the child(inside the parent element).The
h3element is given a class of "element", while thespanis given a class of "tooltip". -
Set the visibility/display of the
spanto none:
.tooltip{ display: none; background-color: #128; color: #fffd; padding: 10px; border-radius: 10px; }We don't want the span element to be visible normally, so we hide it by setting the display to none.
I also added extra styling to make the span element look better. (optional)
-
Add the hover Pseudo-class to the
h3(parent element):
.element:hoverthis selects the element only when it is in the hover state, that is when the mouse is over it.
But what we want to change is not the parent element but rather, the child element, we want to change the visibility/display back to block(the default display).
-
Change the display of the
spanelement:
.element:hover .tooltip{ display: block; }We use the descendant selector to connect the 2 elements so that when the mouse is over the parent element the display of the tooltip changes to block.
Result:
See the Pen Untitled by Joseph Taiwo (@teejay128) on CodePen.
Conclusion
I hope you now know what pseudo-classes are and how to use them on your website.
Pseudo-classes are important because they make your page more responsive, as some contents of the website change based on user actions.
Note: Pseudo-classes are not to be confused with pseudo-elements which only select certain portions of the element.
If you liked this article don't forget to leave a like and follow for more content.
Top comments (0)