吹き出し型ツールチップを作る方法【HTML/CSS・サンプルコード付き】
ツールチップ
吹き出し型ツールチップを作る方法
吹き出し型ツールチップを作る方法を紹介します。このサンプルでは、HTMLとCSSだけを使い、吹き出しの矢印付きツールチップを実装します。上・下・左・右の4方向に表示する方法をまとめて確認できます。
吹き出し型ツールチップは、ボタンやアイコンの補足説明を分かりやすく表示したい場面でよく使われます。矢印が付くことで、どの要素に対する説明なのか直感的に伝えられます。
このサンプルでは、マウスを乗せるとツールチップが表示されます。表示位置は上・下・左・右から選択でき、表示する文章や背景色、文字色、余白などはCSSで自由に変更できます。
コードについて
本記事のコードはサンプルコードです。ご利用前に必ず動作確認を行ってください。
免責事項
本コードの利用により発生した損害について、当サイトは一切の責任を負いません。
コードをコピーして使おう!
<!DOCTYPE html>
<html lang="ja">
<head>
<!-- 文字コード -->
<meta charset="UTF-8">
<!-- スマホ表示に対応 -->
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<!-- ページタイトル -->
<title>吹き出し型ツールチップ</title>
<!-- CSSファイルを読み込み -->
<link rel="stylesheet" href="style.css">
</head>
<body>
<!-- ツールチップ全体 -->
<div class="bubble-tooltip_wrap">
<!-- 見出し -->
<div class="bubble-tooltip_title">
吹き出し型ツールチップ
</div>
<!-- 説明文 -->
<p class="bubble-tooltip_text">
上・下・左・右の4方向に表示できる吹き出し型ツールチップです。
</p>
<!-- ツールチップ一覧 -->
<div class="bubble-tooltip_grid">
<div class="bubble-tooltip_item">
上
<span class="bubble-tooltip_box bubble-tooltip_top">上側に表示される吹き出しです。</span>
</div>
<div class="bubble-tooltip_item">
下
<span class="bubble-tooltip_box bubble-tooltip_bottom">下側に表示される吹き出しです。</span>
</div>
<div class="bubble-tooltip_item">
左
<span class="bubble-tooltip_box bubble-tooltip_left">左側に表示される吹き出しです。</span>
</div>
<div class="bubble-tooltip_item">
右
<span class="bubble-tooltip_box bubble-tooltip_right">右側に表示される吹き出しです。</span>
</div>
</div>
</div>
</body>
</html>
/* ページ全体 */
body{
margin:0; /* ページ外側の余白 */
padding:40px 20px; /* ページ内側の余白 */
background:#f8fafc; /* 背景色 */
font-family:sans-serif; /* フォント */
}
/* ツールチップ全体 */
.bubble-tooltip_wrap{
max-width:900px; /* 最大横幅 */
margin:40px auto; /* 上下余白と中央寄せ */
padding:32px; /* 内側余白 */
border:1px solid #e5e7eb; /* 枠線 */
border-radius:18px; /* 角丸 */
background:#f8fafc; /* 背景色 */
}
/* 見出し */
.bubble-tooltip_title{
margin-bottom:12px; /* 下余白 */
text-align:center; /* 中央寄せ */
font-size:22px; /* 文字サイズ */
font-weight:700; /* 太字 */
}
/* 説明文 */
.bubble-tooltip_text{
margin-bottom:40px; /* 下余白 */
text-align:center; /* 中央寄せ */
color:#4b5563; /* 文字色 */
}
/* ツールチップ一覧 */
.bubble-tooltip_grid{
display:grid; /* グリッド配置 */
grid-template-columns:repeat(2,1fr); /* 2列表示 */
gap:80px; /* 要素同士の間隔 */
justify-items:center; /* 中央寄せ */
}
/* ツールチップ表示対象 */
.bubble-tooltip_item{
position:relative; /* ツールチップの配置基準 */
display:inline-block; /* 横幅を内容に合わせる */
padding:12px 24px; /* 内側余白 */
border-radius:999px; /* 丸い形 */
background:#2563eb; /* 背景色 */
color:#ffffff; /* 文字色 */
font-weight:700; /* 太字 */
cursor:pointer; /* クリックできる見た目 */
}
/* 吹き出し本体 */
.bubble-tooltip_box{
position:absolute; /* 表示対象を基準に配置 */
width:180px; /* 横幅 */
padding:10px 12px; /* 内側余白 */
border-radius:8px; /* 角丸 */
background:#111827; /* 背景色 */
color:#ffffff; /* 文字色 */
font-size:14px; /* 文字サイズ */
line-height:1.6; /* 行間 */
text-align:center; /* 中央寄せ */
opacity:0; /* 初期状態は透明 */
visibility:hidden; /* 初期状態は非表示 */
transition:opacity .2s ease, visibility .2s ease; /* 表示速度:.2s = 0.2秒 */
pointer-events:none; /* ツールチップ自体にマウス判定を持たせない */
}
/* 吹き出しの矢印 */
.bubble-tooltip_box::after{
content:""; /* 疑似要素を表示 */
position:absolute; /* 吹き出し本体を基準に配置 */
width:0; /* 三角形用 */
height:0; /* 三角形用 */
border-style:solid; /* 三角形を作る */
}
/* 上側表示 */
.bubble-tooltip_top{
left:50%;
bottom:calc(100% + 12px);
transform:translateX(-50%);
}
.bubble-tooltip_top::after{
left:50%;
top:100%;
transform:translateX(-50%);
border-width:8px 8px 0;
border-color:#111827 transparent transparent;
}
/* 下側表示 */
.bubble-tooltip_bottom{
left:50%;
top:calc(100% + 12px);
transform:translateX(-50%);
}
.bubble-tooltip_bottom::after{
left:50%;
bottom:100%;
transform:translateX(-50%);
border-width:0 8px 8px;
border-color:transparent transparent #111827;
}
/* 左側表示 */
.bubble-tooltip_left{
top:50%;
right:calc(100% + 12px);
transform:translateY(-50%);
}
.bubble-tooltip_left::after{
left:100%;
top:50%;
transform:translateY(-50%);
border-width:8px 0 8px 8px;
border-color:transparent transparent transparent #111827;
}
/* 右側表示 */
.bubble-tooltip_right{
top:50%;
left:calc(100% + 12px);
transform:translateY(-50%);
}
.bubble-tooltip_right::after{
right:100%;
top:50%;
transform:translateY(-50%);
border-width:8px 8px 8px 0;
border-color:transparent #111827 transparent transparent;
}
/* マウスを乗せた時 */
.bubble-tooltip_item:hover .bubble-tooltip_box{
opacity:1; /* 表示する */
visibility:visible; /* 表示状態にする */
}
ファイル構成と設置方法
このサンプルは、HTMLとCSSの2ファイルで構成されています。index.html にツールチップの構造を記述し、style.css で吹き出し本体や矢印のデザインを設定しています。JavaScriptを使用せず、上・下・左・右の4方向に表示できる吹き出し型ツールチップを実装できます。
sample/
├── index.html
└── style.css
sample フォルダ内へ各ファイルを配置し、sample/index.html をブラウザで開くと動作を確認できます。表示する文章は index.html、色や余白、文字サイズなどのデザインは style.css で変更できます。また、style.css の border-width: 8px; を変更すると吹き出しの矢印サイズを調整できます。例えば 12px にすると大きな矢印になり、5px にすると小さな矢印になります。さらに、calc(100% + 12px) の 12px を変更すると、吹き出しと対象要素との間隔を調整できます。
吹き出し型ツールチップを作る方法【HTML/CSS・サンプルコード付き】
コメント