css WordPress

【WordPress】CSSのみの画像つきツールチップのサンプル(改)

2022年5月2日

画像つきツールチップ(あるいはホバー)をCSSのみで実現できるように改造しました。Javascriptは不使用です。

CodePen

<span class="m_tooltip">
 沈月<img src="https://meian-blog.net/main/tooltip/沈月.webp" alt="画像の説明" />
<span class="m_tooltip-content" aria-hidden="true">
1997年2月27日生まれ<br>主な出演作:ドラマ『致我们单纯的小美好』『流星花园2018』『我的反派男友』など。(以下配信待ち)『月刊少女』
  </span>
</span>
/*画像付きツールチップ*/
.m_tooltip {
  position: relative;
  display: inline-block;
  cursor: pointer;
}

.m_tooltip:hover::before {
  content: "";
  position: absolute;
  top: calc(100% + 5px); /* 三角タブの分だけ下にずらす */
  left: 150px; /* 画像の最大幅 */
  width: 450px; /* テキスト領域の横幅を指定 */
  height: 150px; /* テキスト領域の縦幅を指定 */
  padding-left: 10px; /* 左側の余白 */
  line-height: 2;
  background-color: rgba(0, 0, 0, 0.8);
  border-radius: 0 5px 5px 0; /* 右下と右下を5px丸める */
  color: white; /* 文字色 */
  white-space: normal;
  overflow: hidden;
  text-overflow: ellipsis;
  z-index: 100;
}

.m_tooltip:hover::after {
  content: "";
  position: absolute;
  top: 100%;
  left: calc(50% - 5px); /* 三角タブを中央に配置 */
  border-width: 0 5px 5px 5px;
  border-style: solid;
  border-color: transparent transparent rgba(0, 0, 0, 0.8) transparent;
}

.m_tooltip img {
  display: none;
}

.m_tooltip:hover img {
  border-radius: 5px 0 0 5px; /* 左上と左上を5px丸める */
  display: block;
  position: absolute;
  top: calc(100% + 5px); /* 三角タブの分だけ下にずらす */
  left: 0;
  max-width: 150px;
  z-index: 100;
}

.m_tooltip-content {
  width: 460px; /* テキスト領域の横幅を指定 */
  height: 150px; /* テキスト領域の縦幅を指定 */
  display: none;
  position: absolute;
  top: calc(100% + 5px); /* 三角タブの分だけ下にずらす */
  left: 150px; /* 画像の最大幅 */
  /* ツールチップのスタイリング */
  background-color: rgba(0, 0, 0, 1);
  color: yellow;
  border-radius: 5px;
}

.m_tooltip:hover .m_tooltip-content {
  display: block;
}

/* 追加: ツールチップテキストのスタイリング */
.m_tooltip .m_tooltip-content {
  display: none;
  position: absolute;
  top: calc(100% + 5px); /* 三角タブの分だけ下にずらす */
  left: 150px; /* 画像の最大幅 */
  width: 450px; /* テキスト領域の横幅を指定 */
  height: 150px; /* テキスト領域の縦幅を指定 */
  padding-left: 10px; /* 左側の余白 */
  line-height: 1.5;
  background-color: rgba(0, 0, 0, 0.8);
  border-radius: 0 5px 5px 0; /* 右下と右下を5px丸める */
  color: white;
  white-space: normal;
  overflow: hidden;
  text-overflow: ellipsis;
  z-index: 100;
}

-css, WordPress
-, , , , ,