툴팁(tooltip) 하단에 아래 방향으로 향하는 화살표를 추가하려면 CSS의 top 속성을 활용하면 됩니다. 화살표는 별도의 이미지 없이 :after 가상 요소와 테두리(border)만으로 간단하게 만들 수 있습니다.
핵심 원리
화살표는 너비와 높이가 0인 요소에 두꺼운 테두리를 지정하는 방식으로 구현됩니다. 위쪽 테두리만 파란색으로 채우고 나머지 세 방향은 투명(transparent)으로 설정하면 아래를 가리키는 삼각형 모양의 화살표가 완성됩니다.
예제 코드
아래 코드를 실행하면 마우스 커서를 올렸을 때 하단에 화살표가 달린 툴팁이 나타납니다.
<!DOCTYPE html>
<html>
<style>
.mytooltip .mytext {
visibility: hidden;
width: 140px;
background-color: blue;
color: #fff;
z-index: 1;
bottom: 100%;
left: 60%;
margin-left: -90px;
text-align: center;
border-radius: 6px;
padding: 5px 0;
position: absolute;
}
.mytooltip {
position: relative;
display: inline-block;
margin-top: 50px;
}
.mytooltip .mytext:after {
content: "";
position: absolute;
top: 100%;
left: 50%;
margin-left: -10px;
border-width: 7px;
border-style: solid;
border-color: blue transparent transparent transparent;
}
.mytooltip:hover .mytext {
visibility: visible;
}
</style>
<body>
<div class = "mytooltip">Keep mouse cursor over me
<span class = "mytext"> My Tooltip text</span>
</div>
</body>
</html>코드 설명
.mytooltip 클래스는 기준점 역할을 하는 부모 요소로, position: relative가 지정되어 있습니다. 그 안의 .mytext는 실제 툴팁 본문으로, 평소에는 visibility: hidden로 숨겨져 있다가 마우스를 올리면(:hover) 화면에 나타납니다.
화살표는 .mytext:after 선택자로 생성됩니다. top: 100% 덕분에 툴팁 상자 바로 아래에 위치하고, border-color: blue transparent transparent transparent 설정으로 위쪽만 색이 채워진 삼각형이 만들어집니다. 이렇게 하면 툴팁이 대상 요소 위에 떠 있으면서 자연스럽게 아래 방향을 가리키게 됩니다.