向壁虚造

WEBサイト作成のためのプログラミング備忘録

HTML&CSSだけで作れるツールチップのサンプルコード

HTML&CSSだけ!ツールチップを表示するサンプルコード3選

今回は、HTML&CSSだけで作れるツールチップのサンプルコードを紹介します。

ちょっとしたアニメーションをつけたお洒落なツールチップを揃えてみました。

上下左右の位置ごとにコードを用意しており、すべてコピー&ペーストでOKです。

また、各コードにはできるだけ補足説明をしているので、初心者でも簡単にデザインを調整できるかと思います。

ツールチップって何?

ツールチップとは、テキストやリンク、画像などの補足説明のことです。

一般的に、キーワードにマウスオーバーした際に表示されます。

ツールチップとは?

このように補足説明が必要なユーザーにだけ表示され、逆に不要なユーザーはスムーズに記事を読み進めることができます。

また、補足説明のための段落やスペースを用意する必要がなく、記事構成が複雑にならないというメリットもあるでしょう。

専門用語や補足説明が必要なキーワードを多用するようなコンテンツなら、ツールチップは重宝するんじゃないかと思います。

コピペOK!お洒落なツールチップのサンプルコード3選

実は簡単なツールチップで良ければ、CSSを使わずともHTMLのtitle属性で済みます。

title属性でツールチップを表示してみる

とは言え、地味すぎてユーザーが気づかない…なんてことも多々あります。

また、スマホやタブレットなど環境によって表示されない場合もあるため、きちんとCSSで設計したほうが良いと思います。

今回は、あらかじめデザインされたツールチップのサンプルコードを3種類ご紹介します。

基本的にコピペで実装できますが、ページのレイアウトに合わせて値を調整してみると良いでしょう。

1.シンプル&目立ち過ぎないツールチップ

シンプル&目立ち過ぎないツールチップ

ツールチップはあくまで「補足」なので、あまり目立たせる必要はありません。

上図のツールチップは、スライドしながらフワッとフェードインするようなアニメーションをかけていますが、とてもシンプルです。

また、CSSのコードも簡易的なので初心者でも把握・調整しやすいかと思います。

ただ、ツールチップを表示させる「位置」によってスタイルが少しだけ異なるため、これから上下左右の位置ごとにHTML&CSSのサンプルコードを紹介していきます。

1-1.シンプルなツールチップをテキストの上に表示する

シンプルなツールチップをテキストの上に表示する

上図のように、シンプルなツールチップをテキストの上に表示するHTML&CSSは、以下の通り。

ツールチップ(.description_top)をposition: absoluteで切り離し、leftbottomで位置の調整をしています。

また、マウスオーバー時のスタイルは.tooltip:hover .description_top {}内に記述してください。

表示・非表示の切り替えはvisibilityおよびopacityで表現しています。

ちなみにdisplay: noneinline-blockで表示・非表示を切り替えることも可能ですが、transitionとの相性が悪いので今回は使いませんでした。

マウスオーバー時のスタイルの切り替えをアニメーションっぽくするためにはtransitionプロパティを指定(25行目)します。

最初の値(0.5s)は秒数を表しているので、アニメーションを「長くしたい」「短くしたい」場合は好みの数値に変更してください。

1-2.シンプルなツールチップをテキストの下に表示する

テキストの下にシンプルなツールチップを表示する

シンプルなツールチップをテキストの下に表示するHTML&CSSは、以下の通りです。

1-3.シンプルなツールチップをテキストの右に表示する

シンプルなツールチップをテキストの右に表示

シンプルなツールチップをテキストの右に表示するHTML&CSSは、以下の通りです。

1-4.シンプルなツールチップをテキストの左に表示する

シンプルなツールチップをテキストの左に表示

シンプルなツールチップをテキストの左に表示するHTML&CSSは、以下の通りです。

2.吹き出し(バルーン)風のツールチップ

前節のシンプルなツールチップをアレンジして吹き出し(バルーン)風にしてみました。

吹き出し(バルーン)風のツールチップ

「どのキーワードに対する説明なのか」が明示的になり、かつポップな印象を与えます。

こちらも上下左右の位置ごとにHTML&CSSを解説していきます。

2-1.吹き出し風のツールチップをテキストの上に表示する

吹き出し(バルーン)風のツールチップをテキストの上に表示する

上図のように、吹き出し(バルーン風)のツールチップをテキストの上に表示するHTML&CSSは、以下の通り。

前章で紹介した「シンプルなツールチップ」のコードに疑似要素(.balloon_top::before {})を追加しました。

それ以外の箇所に関しては、ほとんど変更点はありません(marginなど間隔調整をしたのみ)。

疑似要素で小さな三角形を描画し、ツールチップ(本要素)とつなぎ合わせることで吹き出しの「しっぽ」のように見せています。

三角形はborderで表現(32~33行目)します。

頂点を鋭角にしたい場合はborder-topのサイズ(12px)をborderのサイズ(10px)よりも大きく指定してください。

逆に鈍角にしたい場合は、border-topのサイズをborderのサイズよりも小さい値を指定しましょう。

あと、borderの色(#666)は本要素の背景色(18行目)と同じ色に指定しないと、ツールチップと「しっぽ」がそれぞれ違う色になってしまうので注意です。

2-2.吹き出し風のツールチップをテキストの下に表示する

吹き出し風のツールチップをテキストの下に表示する

吹き出し(バルーン)風なツールチップをテキストの下に表示するHTML&CSSは、以下の通りです。

2-3.吹き出し風のツールチップをテキストの右に表示する

吹き出し風のツールチップをテキストの左に表示

吹き出し(バルーン)風なツールチップをテキストの右に表示するHTML&CSSは、以下の通りです。

2-4.吹き出し風のツールチップをテキストの左に表示する

吹き出し風のツールチップをテキストの左に表示する

吹き出し(バルーン)風なツールチップをテキストの左に表示するHTML&CSSは、以下の通りです。

3.クリックで表示/非表示を切り替えるツールチップ

ツールチップと言えば、マウスカーソルで触れると表示されるものが一般的ですが、クリックで表示/非表示を切り替えできたほうがユーザビリティは高いかもしれません。

補足説明を求めていないユーザーにとっては、触れるだけで表示されるツールチップはけっこう鬱陶しかったりしますからね。

例えば、下図のようにクリックで開閉するツールチップを作ってみたいと思います。

クリックでツールチップを開閉

「HTML&CSSだけ!」という触れ込みでしたので、今回はjQueryなど他言語を使わずにチャレンジしてみましょう。

前節までのツールチップはspanで操作していましたが、今回はinputlabelを使います。

実態はチェックボックスです。

つまり「チェックされているか、否か」でツールチップの表示/非表示を切り替えます。

注意事項として、ツールチップごとにinputのidを変更し、重複が発生しないように気を付けてください。

上記のHTMLにおいても「ツールチップ」「テクニカルターム」に付随するinputidをそれぞれ違う値(swich1swich2)に指定しています。

また、inputのidとlabelのforの値は必ず一致させてください(でないと、キーワードをクリックしてもチェックが入りません)。

  • 各ツールチップのinputには固有のidを指定する
  • 「inputのid」と「labelのfor」の値を一致させる

この2点のルールを踏まえたうえで、CSSでスタイルを整えていきましょう。

ツールチップのスタイル自体は、前節のものとほとんど変更点はありません。

追加情報は.swich_setting {}および.swich_setting:checked + .tooltip .description{}の2カ所のみです。

「チェックされているか、否か」の判断さえできればよいので、チェックボックスそれ自体は非表示(2行目)にしています。

チェック後のスタイルを変更する疑似クラス:checkedで非表示にしていたツールチップを表示させています。

まとめ

今回はHTML&CSSのみでツールチップを作る方法をレクチャーしました。

触れると表示されるタイプのツールチップは:hoverを応用することで、比較的簡単に実装できるかと思います。

位置調整はposition周辺のプロパティの値を、アニメーションはtransitionの値を自分なりに変更してみてください。

クリックで開閉するタイプのツールチップは、チェックボックスを使って実装する方法を紹介しました。

多少コードが複雑になりましたが、ユーザビリティを考慮すると「クリック型のツールチップ」も選択肢の一つに加えてみても良いかもしれません。