簡単にツールチップを実現するには、title属性を使います。それでは物足りないならば、オリジナルのツールチップを用意しましょう。

 JavaScriptが使えない場合もあるので、CSSだけで実装します。先ずは、ベーシックなツールチップを作ります。

CSSだけでオリジナルツールチップ作成

HTML で要素に属性を設定する

 ツールチップは属性として提供されます。title属性はグローバル属性ですから、どの要素にも適応されます。

 カスタムのツールチップの場合にも、属性として定義します。要素にはカスタムツールチップ属性を待たせます。

 

HTML

<span class="tooltip" data-tooltip="~text~">~text~</span>

 span 要素に class 定義で tooltip 属性を持たせます。title に当る data-tooltip に表示させたいテキストを代入できるようにします。

CSS で機能を定義する

classの定義

 

CSS

  .tooltip {
    position: relative;
    cursor: pointer;
  }

 ツールチップ本体のCSS定義です。表示位置とカーソル形状を定義しています。

カーソル形状は、ツールチップ機能には直接関係せず、閲覧者へのお知らせ目的です。超シンプルで良い場合省略できます。

tooltip表示定義

CSS

  .tooltip::after {                             /*疑似要素

     content: attr(data-tooltip); /*表示データ箱

     position: absolute; /*表示位置

     top: 100%;                  /*↓形状

     left: 0;

     background: #333;

     color: #fff;

     padding: 2px 4px;

     border-radius: 4px; /*↑形状

     font-size: 15px;   /*文字サイズ

     white-space: pre-wrap;/*折り返しあり

     opacity: 0; /*透明度0:隠しておく

     pointer-events: none;              /*ポインター無効 

     transform: translateY(4px);    /*位置微調整

     transition: opacity 0.2s ease; /*表示効果

  }

  .tooltip:hover::after {

     opacity: 1;/*透明度1:出現させる

  }

 ツールチップ本体の見た目定義です。

「:hover」でカーソルが載った時に表示させます。

 

表示

薄切りポテトのフライ

CSSプロパティ解説

data-属性

 カスタムデータ属性。属性部分には、独自定義したclass名を書きます。

data-tooltip="表示するテキスト"で、 title="表示するテキスト" と同じ働きをします。

posision

 プロパティ。要素のレイアウト方法を決めます。初期値は固定「static」です。「relativ」を指定すると、元の(要素)位置を基準に移動した位置に配置されます。

 

意味

 absolute 

 絶対位置

 fixed

 固定

 stickey

 スクロールして固定 

cursol

 プロパティ。カーソルの見た目を決めます。

 

意味

 default

 矢印

 pointer

 手(👆)

 text

 |(キャレット)

 move

 +

 not-allowed 

 禁止マーク

 wait

 回る輪

 crosshair

 ✛

::after

 疑似要素。指定(ここではtooltip)要素の後にHTMLでは記述していないコンテンツを追加して表示させます。

前に追加する場合には、「::before」を使います。

content

 疑似要素専用プロパティ。表示させるものを値として与えることができます。

 

意味

補足

 ”text"

 文字列 

 文章、記号

 attr(属性名

 属性値

 title、data-~のみ 

 ""

 空文字

 疑似要素の表示に必須 

white-space

 プロパティ。要素の中の空白や改行を制御します。

 

意味

空白

 改行 

 折り返し 

 normal

 初期値 

 →1

×

 nowrap 

 折り返し禁止 

 →1

×

×

 pre 

 保持

 保持 

×

 pre-wrap 

 保持・折り返し 

 保持

 pre-line

 空白のみ圧縮

 →1

 

折り返しには、改行位置に「&#10;」を入れます。

opacity

 プロパティ。要素の透明度を指定します。

値は透明度を1~0まで小数で指定します。0で完全透明、1で不透明になります。

pointer-events

 プロパティ。ポインター操作の制御を行います。初期値は「auto」で可ですが、「none」で無効にします。

 transform

 プロパティ。要素を変形します。値には、関数を指定します。

translateY(4px)は、Y方向(4px +なので下)に移動させる関数です。

 transision

 プロパティ。変形の時間を調節して滑らかなアニメーション効果を演出します。

値は、間にスペースを空けて、効果を掛けるプロパティ時間イージング(関数)遅延を指定します。

transision: opcity 0.5s ease-in-out 0.1s;

 透明度を0.1秒後から0.5秒かけて始まりはゆっくり加速して再びゆっくり減速して終了させます。

 :hover

 疑似クラス。要素にマウスが載った時の動作を定義します。

要素:hover {

  ~定義~

}