CSS
 Computer >> コンピューター >  >> プログラミング >> CSS

CSSでツールチップに矢印を追加する方法

CSSでツールチップに矢印を追加する方法

CSSを使えば、:after 疑似要素を利用して、ツールチップに小さな矢印を簡単に追加できます。矢印を作成する際には、content プロパティも併せて指定します。

矢印が表示される仕組み

ここで使われているのは、border(境界線)を活用した定番のテクニックです。サイズを持たない空の要素に対して、上方向だけに色の付いた太いボーダーを設定し、残る3辺を透明(transparent)にすることで、三角形の矢印として描画されます。

サンプルコード

次のコードを実行して、ツールチップへの矢印追加を試してみてください。マウスカーソルをテキストに重ねると、青い背景のツールチップと、その下に突き出た矢印が表示されます。

<!DOCTYPE html>
<html>
   <style>
      .mytooltip .mytext {
         visibility: hidden;
         width: 140px;
         background-color: blue;
         color: #fff;
         z-index: 1;
         bottom: 100%;
         left: 60%;
         margin-left: -90px;
         text-align: center;
         border-radius: 6px;
         padding: 5px 0;
         position: absolute;
      }
      .mytooltip {
         position: relative;
         display: inline-block;
         margin-top: 50px;
      }
      .mytooltip .mytext:after {
         content: "";
         position: absolute;
         top: 100%;
         left: 50%;
         margin-left: -10px;
         border-width: 7px;
         border-style: solid;
         border-color: blue transparent transparent transparent;
      }
      .mytooltip:hover .mytext {
         visibility: visible;
      }
   </style>

   <body>
      <div class="mytooltip">マウスカーソルを重ねてください
         <span class="mytext">ツールチップのテキスト</span>
      </div>
   </body>
</html>

ポイント解説

  • :after 疑似要素:ツールチップ本体(.mytext)の直後に、矢印用の擬似要素を生成します。
  • border-color の指定:上側のみ blue、残り3辺は transparent にすることで、下向きの三角形を作っています。
  • top: 100%:矢印をツールチップの下端に配置するための指定です。
  • :hover:マウスオーバー時に visibility を visible に切り替えることで、ツールチップを表示させています。
  1. CSSだけでツールチップを作成する方法をわかりやすく解説

    Webページでテキストやボタンにマウスカーソルを合わせたときに、補足説明がふわりと表示される「ツールチップ」。JavaScriptを使わなくても、CSSだけでも簡単に実装できることをご存じでしょうか。この記事では、CSSのposition、visibility、opacity、そして:hover擬似クラスを組み合わせて、吹き出し付きのツールチップを作成する方法を紹介します。ツールチップの仕組み基本的な仕組みは以下の通りです。親要素(.tooltip)にposition: relative;を指定し、基準位置とします。ツールチップ本体(.toolText)はposition: absolute;

  2. CSSでホバー時にトランジション(アニメーション)を追加する方法を解説

    CSSでホバー時にトランジション(滑らかなアニメーション効果)を追加するには、transitionプロパティと:hover疑似クラスを組み合わせて使用します。あらかじめ要素にtransitionを設定しておくことで、ホバー時の変化が瞬時に切り替わるのではなく、指定した時間をかけてスムーズに変化するようになります。 サンプルコード <!DOCTYPE html> <html> <head> <meta name="viewport" content="width=device-width, initial-scale=1&q