【HTML】ツールチップを表示する方法

【HTML】ツールチップを表示する方法

title属性を使う方法

HTMLのtitle属性を使うと、簡単にツールチップを表示できます。 ユーザーがマウスを要素の上に載せると、ブラウザが自動的にツールチップを表示します。

<button title="これはツールチップです">ホバーしてください</button>

結果:

CSSでツールチップを作成する

title属性は簡単ですが、デザインをカスタマイズできません。 そこで、CSSを使って独自のツールチップを作成する方法を紹介します。

基本的なCSSツールチップ

以下のHTMLとCSSでシンプルなツールチップを作れます。

<div class="tooltip">
    ホバーしてください
    <span class="tooltip-text">これはツールチップです</span>
</div>
    

対応するCSS:

.tooltip {
    position: relative;
    display: inline-block;
    cursor: pointer;
}

.tooltip-text {
    visibility: hidden;
    position: absolute;
    background-color: black;
    color: white;
    padding: 5px;
    border-radius: 5px;
    bottom: 100%;
    left: 50%;
    transform: translateX(-50%);
    white-space: nowrap;
}

.tooltip:hover .tooltip-text {
    visibility: visible;
}
    

結果

ホバーしてください これはツールチップです

JavaScriptでツールチップを作成する

JavaScriptを使えば、より動的なツールチップを作成できます。 例えば、マウスの動きに応じてツールチップの位置を変更することが可能です。

<button id="tooltip-btn">ホバーしてください</button>
<div id="tooltip" style="display:none; position:absolute; background:black; color:white; padding:5px; border-radius:5px;">
    これはツールチップです
</div>

<script>
    const btn = document.getElementById("tooltip-btn");
    const tooltip = document.getElementById("tooltip");

    btn.addEventListener("mouseover", (event) => {
        tooltip.style.display = "block";
        tooltip.style.left = event.pageX + "px";
        tooltip.style.top = event.pageY - 30 + "px";
    });

    btn.addEventListener("mouseout", () => {
        tooltip.style.display = "none";
    });
</script>
    

結果

高度なツールチップの作成

さらに高度なツールチップを作るには、以下のような技術を組み合わせることができます:

  • アニメーション(CSSのtransitionやJavaScriptのアニメーションライブラリ)
  • ツールチップの遅延表示
  • クリックイベントでのツールチップ表示
  • 複数行のツールチップ

クリックでツールチップを表示

クリックするとツールチップを表示する例:

<button id="click-tooltip-btn">クリックしてください</button>
<div id="click-tooltip" style="display:none; position:absolute; background:black; color:white; padding:5px; border-radius:5px;">
    クリックで表示するツールチップ
</div>

<script>
    const clickBtn = document.getElementById("click-tooltip-btn");
    const clickTooltip = document.getElementById("click-tooltip");

    clickBtn.addEventListener("click", (event) => {
        clickTooltip.style.display = (clickTooltip.style.display === "none") ? "block" : "none";
        clickTooltip.style.left = event.pageX + "px";
        clickTooltip.style.top = event.pageY - 30 + "px";
    });
</script>
    

結果

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です