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

CSSでツールチップを正しく配置する方法

ツールチップを正確に配置するには、CSSの rightlefttopbottom の各プロパティを使用します。これらのプロパティと position: absolute; を組み合わせることで、親要素を基準としてツールチップを上下左右の好きな位置に表示させることができます。

ツールチップを右側に配置する

まずは、マウスカーソルを重ねたときにツールチップが要素の右側に表示される基本的な例を見てみましょう。

サンプルコード

<!DOCTYPE html>
<html>
   <style>
      .mytooltip .mytext {
         visibility: hidden;
         width: 140px;
         background-color: blue;
         color: #fff;
         z-index: 1;
         top: -6px;
         left: 100%;
         text-align: center;
         border-radius: 6px;
         padding: 5px 0;
         position: absolute;
      }
      .mytooltip {
         position: relative;
         display: inline-block;
      }
      .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>

コードのポイント

  • .mytooltipposition: relative; を指定することで、ツールチップの基準となる親要素を作ります。
  • .mytext(ツールチップ本体)には position: absolute; を設定し、left: 100%; によって親要素の右端外側に配置しています。
  • top: -6px; を指定することで、ツールチップの縦位置を親要素のテキストに揃えています。
  • 通常時は visibility: hidden; で非表示にしておき、:hover 時に visibility: visible; へ切り替えることで、マウスオーバーしたときだけツールチップが表示されます。
  • z-index: 1; を指定することで、周囲の他の要素よりも手前に表示されます。

他の位置への配置も同じ要領で可能

同じ仕組みを使えば、値を変えるだけでツールチップの表示位置を簡単に変更できます。

  • 左側に表示する場合:right: 100%; を指定
  • 上側に表示する場合:bottom: 100%; を指定
  • 下側に表示する場合:top: 100%; を指定

このように、position プロパティと方向指定のプロパティを組み合わせることが、CSSでツールチップを思い通りの位置に配置するための基本となります。

  1. CSSでスクロールバーを非表示にする方法をわかりやすく解説

    CSSでスクロールバーを非表示にする基本の方法Webページや特定の要素からスクロールバーを非表示にしたい場合、CSSのoverflowプロパティを使うのが最もシンプルな方法です。overflow: hidden;を指定すると、コンテンツが領域からあふれてもスクロールバーが表示されなくなります。実装例<!DOCTYPE html> <html> <head> <style> body { height: 150vh; width: 200vw; overflow: hidden;

  2. CSSで矢印を作成する方法!borderとrotateを組み合わせた4方向矢印の実装テクニック

    CSSでは、画像やアイコンフォント、外部ライブラリに頼らなくても、border(境界線)とtransform: rotate()を組み合わせるだけで、上下左右どの方向の矢印でも簡単に作成できます。境界線でL字型の角を作り、それを回転させるのが基本的な考え方です。 サンプルコード <!DOCTYPE html> <html> <head> <meta name="viewport" content="width=device-width, initial-scale=1" /> <style>