ユーザーログイン イメージ

プログラミング

【CSS】ツールチップをHTMLとCSSだけで簡単に作る

どうも、ジャングルオーシャンのミケです。

今日はツールチップの作り方の紹介だよ。




ツールチップとは

ツールチップとはある要素にマウスカーソルを合わせたときに
補足説明などの要素を表示するものだよ。

具体的なイメージはサンプルデモページを見てみてね。
サンプルデモを見る

HTMLCSSだけで簡単に実装できるからぜひ実装してみてね。

それじゃそれぞれのソースコードを見ていこう。

1.テキストで上に作るツールチップ

HTML

テキスト

説明を入力してください。

CSS

.tooltip1{
    position: relative;
    cursor: pointer;
    display: inline-block;
}
.tooltip1 p{
    margin:0;
    padding:0;
}
.description1 {
    display: none;
    position: absolute;
    padding: 10px;
    font-size: 12px;
    line-height: 1.6em;
    color: #fff;
    border-radius: 5px;
    background: #000;
    width: 100px;
}
.description1:before {
    content: "";
    position: absolute;
    top: 100%;
    left: 50%;
    border: 15px solid transparent;
    border-top: 15px solid #000;
    margin-left: -15px;
}
.tooltip1:hover .description1{
    display: inline-block;
    top: -70px;
    left: -30px;
}

サンプルデモを見る

ツールチップの吹き出しはdisplay:none;で隠してあってテキストにマウスオーバーするとdisplay:inline-block;で表示されるという仕組みだよ。

2.テキストで右に作るツールチップ

HTML

テキスト

説明を入力してください。

CSS

.tooltip2{
    position: relative;
    cursor: pointer;
    display: inline-block;
}
.tooltip2 p{
    margin:0;
    padding:0;
}
.description2 {
    display: none;
    position: absolute;
    padding: 10px;
    font-size: 12px;
    line-height: 1.6em;
    color: #fff;
    border-radius: 5px;
    background: #000;
    width: 100px;
}
.description2:before {
    content: "";
    position: absolute;
    top: 0%;
    right: 95%;
    border: 15px solid transparent;
    border-top: 15px solid #000;
    margin-left: -15px;
    transform: rotateZ(90deg);
}
.tooltip2:hover .description2{
    display: inline-block;
    top: 0px;
    left: 80px;
}

サンプルデモを見る

吹き出しの位置を.tooltip2:hover .description2で移動させて吹き出しについている矢印はtransform: rotateZ(90deg);で回転させているよ。

3.テキストで下に作るツールチップ

HTML

テキスト

説明を入力してください。

CSS

.tooltip3{
    position: relative;
    cursor: pointer;
    display: inline-block;
}
.tooltip3 p{
    margin:0;
    padding:0;
}
.description3 {
    display: none;
    position: absolute;
    padding: 10px;
    font-size: 12px;
    line-height: 1.6em;
    color: #fff;
    border-radius: 5px;
    background: #000;
    width: 100px;
}
.description3:before {
    content: "";
    position: absolute;
    top: -24px;
    right: 60%;
    border: 15px solid transparent;
    border-top: 15px solid #000;
    margin-left: -15px;
    transform: rotateZ(180deg);
}
.tooltip3:hover .description3{
    display: inline-block;
    top: 30px;
    left: 0px;
}

サンプルデモを見る

吹き出しの位置を.tooltip2:hover .description2で移動させて吹き出しについている矢印はtransform: rotateZ(180deg);で回転させているよ。

4.テキストで左に作るツールチップ

HTML

テキスト

説明を入力してください。

CSS

.tooltip4{
    position: relative;
    cursor: pointer;
    display: inline-block;
}
.tooltip4 p{
    margin:0;
    padding:0;
}
.description4 {
    display: none;
    position: absolute;
    padding: 10px;
    font-size: 12px;
    line-height: 1.6em;
    color: #fff;
    border-radius: 5px;
    background: #000;
    width: 100px;
}
.description4:before {
    content: "";
    position: absolute;
    top: 0px;
    left: 130px;
    border: 15px solid transparent;
    border-top: 15px solid #000;
    margin-left: -15px;
    transform: rotateZ(270deg);
}
.tooltip4:hover .description4{
    display: inline-block;
    top: 0px;
    left: -130px;
}

サンプルデモを見る

吹き出しの位置を.tooltip2:hover .description2で移動させて吹き出しについている矢印はtransform: rotateZ(270deg);で回転させているよ。

5.画像で作るツールチップ

HTML

説明を入力してください。

CSS

.tooltip5{
    position: relative;
    cursor: pointer;
    display:  inline-block;
}
.tooltip5 img{
    width: 20px;
}
.description5 {
    display: none;
    position: absolute;
    padding: 10px;
    font-size: 12px;
    line-height: 1.6em;
    color: #fff;
    border-radius: 5px;
    background: #000;
    width: 100px;
}

.description5:before {
    content: "";
    position: absolute;
    top: 100%;
    left: 50%;
    border: 15px solid transparent;
    border-top: 15px solid #000;
    margin-left: -15px;
}
.tooltip5:hover .description5{
    display: inline-block;
    top: -75px;
    left: -50px;
}

サンプルデモを見る

さっきまでのテキストが画像になったけどツールチップの表示方法は同じようにdisplay:none;からのdisplay:inline-block;だよ。このサンプルの吹き出し位置は上にしているよ。

最後に

ツールチップは補足説明などをする時にすごく便利だよね。

限られたスペースでどうデザインするかという時に役立つと思うから

覚えておいて損はないと思うよ!

ぜひ使ってみてね。

それじゃまた今度!

TwitterやFacebookのフォローよろしくね!

Twitter
@michelgorilla

Facebook
ミケランジェロ




-プログラミング
-, , ,

© 2025 ジャングルオーシャン