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

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

ツールチップの上部に矢印を追加するには、CSSのbottomプロパティを活用します。:after疑似要素と組み合わせることで、画像を使わずに三角形の矢印を簡単に作成できます。

実装例

以下のコードを実行すると、上部に矢印が付いたツールチップを表示できます。テキストの上にマウスカーソルを重ねると、ツールチップが現れる仕組みです。

<!DOCTYPE html>
<html>
   <style>
      .mytooltip .mytext {
         visibility: hidden;
         width: 140px;
         background-color: blue;
         color: #fff;
         z-index: 1;
         top: 150%;
         left: 50%;
         margin-left: -60px;
         text-align: center;
         border-radius: 6px;
         padding: 5px 0;
         position: absolute;
      }
      .mytooltip {
         position: relative;
         display: inline-block;
      }
      .mytooltip .mytext:after {
         content: "";
         position: absolute;
         bottom: 100%;
         left: 50%;
         margin-left: -10px;
         border-width: 3px;
         border-style: solid;
         border-color: transparent transparent blue transparent;
      }
      .mytooltip:hover .mytext {
         visibility: visible;
      }
   </style>
   <body>
      <div class = "mytooltip">Keep mouse cursor over me
         <span class = "mytext"> My Tooltip text</span>
      </div>
   </body>
</html>

コードのポイント

  • bottom: 100% — 疑似要素をツールチップ本体のすぐ上に配置し、矢印の位置を決めます。
  • border-color — 4辺のうち下側だけを青色(blue)にすることで、下向きの三角形(矢印)を作り出しています。
  • left: 50% と margin-left: -10px — 矢印をツールチップの水平方向中央に配置します。
  • :hover — マウスオーバー時にvisibilityvisibleへ切り替え、ツールチップを表示させます。

この手法はJavaScript不要で実装できるため、軽量かつ保守しやすいのが特徴です。矢印のサイズはborder-widthの値で調整でき、色もborder-colorを変更するだけでツールチップ本体に合わせられます。

  1. CSSでツールチップの右側に矢印を表示する方法

    CSSのleftプロパティを活用することで、ツールチップの右側に矢印を表示させることができます。実装のポイント矢印は::after疑似要素とborder(境界線)を組み合わせた定番テクニックで作成します。ツールチップ本体の左端(left: 100%)に疑似要素を配置し、4辺のうち左側のボーダーだけに色を指定することで、三角形の矢印として描画されます。残りの3辺はtransparent(透明)にしておくのがポイントです。サンプルコード以下のコードを実行すると、テキストにマウスカーソルを重ねたときに、右側へ矢印が付いたツールチップが表示されます。<!DOCTYPE html> <

  2. CSSのtopプロパティをアニメーションさせる方法

    CSSでは、topプロパティにも@keyframesを使ったアニメーションを適用できます。要素を上下に滑らかに移動させたい場合などに活用できるテクニックです。以下は、topプロパティをアニメーションさせて、オレンジ色のボックスが下方向へ移動するサンプルコードです。サンプルコード<!DOCTYPE html> <html>    <head>       <style>          div {       &nbs