CSSツールチップ(Tooltip)

この記事では、HTMLとCSSを使用してツールチップを作成する方法を紹介します。

ツールチップはマウスが指定した要素に移動するとトリガーされます。まず以下の4つの例を見てみましょう:

上部表示ツールチップのテキスト
右側表示ツールチップのテキスト
下部表示ツールチップのテキスト
左側表示ツールチップのテキスト

基本ツールチップ(Tooltip)

ツールチップはマウスが指定した要素に移動すると表示されます:

HTMLコード:

<style>
/*Tooltipコンテナ*/ .tooltip { position: relative; display: inline-block; border-bottom: 1px dotted black; /*ホバー要素に点線を表示*/ } /*Tooltipテキスト*/ .tooltip .tooltiptext { visibility: hidden; width: 120px; background-color: black; color: #fff; text-align: center; padding: 5px 0; border-radius: 6px; /*配置*/ position: absolute; z-index: 1; } /*マウスを移動するとツールチップが表示されます*/ .tooltip:hover .tooltiptext { visibility: visible; }
</style> <div class="tooltip">ここにマウスを移動<span class="tooltiptext">ツールチップテキスト</span> </div>

試してみる »

例の解説

HTML)コンテナ要素(<div>など)を使用し、"tooltip"クラスを追加します。マウスが<div>の上に移動するとツールチップ情報が表示されます。

ツールチップテキストはインライン要素(<span>など)に配置し、class="tooltiptext"。

CSS)tooltipクラスを使用します。position:relativeツールチップテキストには配置値を設定する必要があります。position:absolute。 注意:次の例では、さらに多くの配置効果を示します。

tooltiptextクラスは実際のツールチップテキストに使用されます。初期状態は非表示で、マウスが要素に移動すると表示されます。幅、背景色、フォント色などのスタイルが設定されています。

CSS3 border-radius属性はツールチップに角丸を追加するために使用されます。

:hoverセレクタは、マウスが指定した要素<div>の上に移動したときに表示されるツールチップに使用されます。


ツールチップの配置

次の例では、ツールチップは指定した要素の右側に表示されます(left:105%) 。

注意top:-5pxコンテナ要素の中央に配置するのと同じです。数値を使用します。5ツールチップテキストの上下のpadding(内余白)が5pxであるためです。

paddingの値を変更する場合は、topの値もそれに応じて変更する必要があります。そうすることで中央揃えを確保できます。

ツールチップを左側に表示する場合も同じ原理です。

右側に表示:

.tooltip .tooltiptext { top: -5px; left: 105%; }

試してみる »

左側に表示:

.tooltip .tooltiptext { top: -5px; right: 105%; }

試してみる »

ツールチップを上部または下部に表示したい場合は、margin-left属性を使用し、-60pxに設定します。この数値は、幅の半分を使用して中央揃えにすることから計算されます。つまり、width/2(120/2 = 60)です。

上部に表示:

.tooltip .tooltiptext { width: 120px; bottom: 100%; left: 50%; margin-left: -60px; /*幅の半分(120/2 = 60)を使用してツールチップを中央揃えにします*/ }

試してみる »

下部に表示:

.tooltip .tooltiptext { width: 120px; top: 100%; left: 50%; margin-left: -60px; /*幅の半分(120/2 = 60)を使用してツールチップを中央揃えにします*/ }

試してみる »

矢印を追加

CSSの疑似要素::afterとcontent属性を使用して、ツールチップ用の小さな矢印マークを作成できます。矢印はボーダー(枠線)で構成されていますが、組み合わせると、ツールチップは吹き出しのように見えます。

次の例では、上部に表示されるツールチップに下部矢印を追加する方法を示します:

上部ツールチップ/下部矢印:

.tooltip .tooltiptext::after { content: " "; position: absolute; top: 100%; /*ツールチップの下部*/ left: 50%; margin-left: -5px; border-width: 5px; border-style: solid; border-color: black transparent transparent transparent; }

試してみる »

例の解説

ツールチップ内で矢印を配置します:top: 100%矢印はツールチップの下部に表示されます。left: 50%矢印を中央揃えにするために使用します。

注意:border-width属性は矢印のサイズを指定します。これを変更する場合は、margin-left値も変更する必要があります。そうすることで矢印が中央に表示されます。

border-colorコンテンツを矢印に変換するために使用します。上部のボーダーを黒に設定し、他は透明にします。他の部分も黒に設定すると、黒い四角形として表示されます。

次の例では、ツールチップの上部に矢印を追加する方法を示します。ボーダーの色の設定に注意してください:

下部ツールチップ/上部矢印:

.tooltip .tooltiptext::after { content: " "; position: absolute; bottom: 100%; /*ツールチップの上部*/ left: 50%; margin-left: -5px; border-width: 5px; border-style: solid; border-color: transparent transparent black transparent; }

試してみる »

次の2つの例は、左右の矢印の例です:

右側ツールチップ/左側矢印:

.tooltip .tooltiptext::after { content: " "; position: absolute; top: 50%; right: 100%; /*ツールチップの左側*/ margin-top: -5px; border-width: 5px; border-style: solid; border-color: transparent black transparent transparent; }

試してみる »

左側ツールチップ/右側矢印:

.tooltip .tooltiptext::after { content: " "; position: absolute; top: 50%; left: 100%; /*ツールチップの右側*/ margin-top: -5px; border-width: 5px; border-style: solid; border-color: transparent transparent transparent black; }

試してみる »

フェードイン効果

CSS3のtransitionプロパティとopacityプロパティを使用して、ツールチップのフェードイン効果を実装できます:

フェードイン効果:

.tooltip .tooltiptext { opacity: 0; transition: opacity 1s; } .tooltip:hover .tooltiptext { opacity: 1; }

試してみる »

その他の例

美しいCSSツールチップ

その他の拡張