24 Mar 2023

Building a Custom Tooltip with HTML, CSS, and JavaScript

Tooltips are an important element of a user interface, as they provide additional information or context about a specific element when hovered over. The default tooltips provided by the browser are often basic and don’t provide enough customization options. This is where creating a custom tooltip comes in handy. In this blog, we’ll cover how to create a custom tooltip using HTML, CSS, and JavaScript.


To create a custom tooltip, we first need to create a container element that will hold the tooltip. In this case, we’ll use a span element with a class of “tooltip-container”. Inside the container, we’ll add another span element with a class of “tooltip”. This element will contain the text that will be displayed when the user hovers over the container element.

<span class="tooltip-container">
  <span class="tooltip">This is the tooltip text</span>


Next, we’ll style the tooltip container and the tooltip text. First, we’ll give the container a position of relative so that the tooltip can be positioned absolutely within it. Then, we’ll hide the tooltip text by giving it a display of none.

.tooltip-container {
  position: relative;

.tooltip {
  display: none;

We’ll also add some styles to the tooltip text to make it more visually appealing. This includes setting a background color, padding, border, and font size.

.tooltip {
  background-color: #333;
  color: #fff;
  padding: 10px;
  border-radius: 5px;
  font-size: 14px;
  position: absolute;
  z-index: 1;
  bottom: 150%;
  left: 50%;
  transform: translateX(-50%);

Note that we’ve positioned the tooltip using absolute positioning, with the bottom and left values set to position it below the container element and centered horizontally. The translateX(-50%) transform is used to center the tooltip horizontally.


Finally, we’ll add some JavaScript to show the tooltip when the user hovers over the container element and hide it when they stop hovering. To do this, we’ll use the mouseenter and mouseleave events.

var tooltipContainer = document.querySelector('.tooltip-container');
var tooltip = document.querySelector('.tooltip');

tooltipContainer.addEventListener('mouseenter', function () {
  tooltip.style.display = 'block';

tooltipContainer.addEventListener('mouseleave', function () {
  tooltip.style.display = 'none';

And that’s it! With these HTML, CSS, and JavaScript elements combined, we have a fully functional custom tooltip. Of course, you can customize this code further to suit your needs, such as changing the text or styling of the tooltip, adding more tooltips to the page, or even using JavaScript to dynamically update the tooltip text based on user interactions.

In conclusion, custom tooltips provide more control over the appearance and behavior of tooltips in your user interface. By using HTML, CSS, and JavaScript, you can create tooltips that are tailored to your specific needs. Whether you want to change the text, styling, or behavior of the tooltip, the flexibility of custom tooltips allows you to provide a better user experience for your users. Whether you’re a web developer or just starting out with front-end development, creating a custom tooltip is a great way to enhance your skills and improve your user interfaces. With this guide, you now have the knowledge to build custom tooltips with ease.