JSFiddle - React, Tailwind, and code Playground
HTML
<div>
<ul>
<span class="tooltip">
<div class="div1"></div>
<span class="tooltip-content">
<span class="tooltip-text">
<span class="tooltip-inner">
test1
</span>
</span>
</span>
</span>
<span class="tooltip">
<div class="div2"></div>
<span class="tooltip-content">
<span class="tooltip-text">
<span class="tooltip-inner">
test2
</span>
</span>
</span>
</span>
<span class="tooltip">
<div class="div3"></div>
<span class="tooltip-content">
<span class="tooltip-text">
<span class="tooltip-inner">
test3
</span>
</span>
</span>
</span>
<span class="tooltip">
<div class="div4"></div>
<span class="tooltip-content">
<span class="tooltip-text">
<span class="tooltip-inner">
test4
</span>
</span>
</span>
</span>
</ul>
</div>
CSS
.div1 {
background: yellow;
width: 200px;
height: 100px;
display: inline-block;
margin-top: 100px;
}
.div2 {
background: red;
width: 260px;
height: 100px;
display: inline-block;
margin-top: 100px;
}
.div3 {
background: blue;
width: 160px;
height: 100px;
display: inline-block;
margin-top: 100px;
}
.div4 {
background: pink;
width: 60px;
height: 100px;
display: inline-block;
margin-top: 100px;
}
.tooltip {
display: inline;
position: relative;
z-index: 999;
}
/* Gap filler */
.tooltip::after {
content: '';
position: absolute;
width: 100%;
bottom: 100%;
left: 50%;
pointer-events: none;
-webkit-transform: translateX(-50%);
transform: translateX(-50%);
}
.tooltip:hover::after {
pointer-events: auto;
}
/* Tooltip */
.tooltip-content {
position: absolute;
z-index: 9999;
width: 120px;
bottom: 100px;
left:0;
right:0;
font-size: 20px;
line-height: 1.4;
text-align: center;
font-weight: 400;
color: black;
background: transparent;
opacity: 0;
margin: 0 auto 20px;
cursor: default;
pointer-events: none;
-webkit-font-smoothing: antialiased;
-webkit-transition: opacity 0.3s 0.3s;
transition: opacity 0.3s 0.3s;
}
.tooltip:hover .tooltip-content {
opacity: 1;
pointer-events: auto;
-webkit-transition-delay: 0s;
transition-delay: 0s;
}
.tooltip-content span {
display: block;
}
.tooltip-text {
border-bottom: 10px solid #fcd803;
overflow: hidden;
-webkit-transform: scale3d(0,1,1);
transform: scale3d(0,1,1);
-webkit-transition: -webkit-transform 0.3s 0.3s;
transition: transform 0.3s 0.3s;
}
.tooltip:hover .tooltip-text {
-webkit-transition-delay: 0s;
transition-delay: 0s;
-webkit-transform: scale3d(1,1,1);
transform: scale3d(1,1,1);
}
.tooltip-inner {
font-size: 10px;
background: rgba(255,255,255,0.95);
padding: 10px;
-webkit-transform: translate3d(0,100%,0);
transform: translate3d(0,100%,0);
webkit-transition: -webkit-transform 0.3s;
transition: transform 0.3s;
}
.tooltip:hover .tooltip-inner...