Tooltips are a common UI element that provide additional information when users hover over an element. They are often used to clarify the purpose of buttons or icons.
In this tutorial, we will create a simple tooltip using only HTML and CSS. While tooltips can also be created using JavaScript, this tutorial focuses on a pure CSS approach to keep things simple for beginners.
HTML Structure
Let's start by looking at the HTML structure we'll use to create our tooltip:
<div class="tooltip">
<label class="text">Tooltip</label>
<button>Hover Me</button>
</div>
We have a <div>
element with the class "tooltip" containing two child elements:
A
<label>
with the class "text" (this will be our tooltip content)A
<button>
element (the element we'll hover over to trigger the tooltip).
CSS Styling
Main .tooltip should have a position property.
.tooltip {
position: relative;
}
This is the styling for the actual tooltip that appears after hovering. If you want, you can change the background-color property or add a border, box-shadow, etc.
.tooltip .text {
visibility: hidden;
background-color: #000000;
color: #ffffff;
text-align: center;
box-sizing: border-box;
padding: 5px 5px;
border-radius: 5px;
position: absolute;
z-index: 1;
top: -40px;
font-size: 12px;
width: max-content;
display: flex;
align-items: center;
justify-content: center;
flex-direction: column;
}
Then we use the ::after psuedo selector in CSS to create an arrow for the tooltip. Both ::after and :after will work.
.tooltip .text::after {
content: "";
display: block;
width: 0;
height: 0;
border-left: 5px solid transparent;
border-right: 5px solid transparent;
border-top: 10px solid #000000;
position: absolute;
bottom: -10px;
}
Finally, we make the text visible when the .tooltip is hovered over use :hover psuedo-class.
.tooltip:hover .text {
visibility: visible;
}
And there you have it! We've created a simple tooltip using pure CSS and HTML.
Certainly, here's an improved and more professional version of the statement:
We can enhance the functionality of this tooltip using JavaScript in several ways, such as automatically detecting screen edges and adjusting the tooltip's position accordingly.
We can optimize the HTML structure by defining the tooltip text within the HTML element as a data attribute, eliminating the need for additional HTML elements and so on.
I'll post it as a separate article.
Also, check out my CSS Tooltip Generator, which will be helpful if you are a beginner.
Top comments (0)