質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
CSS3

CSS(Cascading Style Sheet)の第3版です。CSS3と略されることが多いです。色やデザインを柔軟に変更することが可能になります。

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

Q&A

解決済

3回答

841閲覧

HTMLの擬似要素をホバーしてツールチップを表示したい

Kai_teratail

総合スコア13

CSS3

CSS(Cascading Style Sheet)の第3版です。CSS3と略されることが多いです。色やデザインを柔軟に変更することが可能になります。

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

0グッド

0クリップ

投稿2018/06/01 06:47

擬似要素をツールチップとして表示はできるのですが、
擬似要素をホバーして、ツールチップを表示することはできるのでしょうか?

今模索しているソースはこんな感じです。。。

HTML

1<div> 2 <span>たいとる</span> 3 <span id="disp-tip">・開始年月日、または終了年月日のどちらか必須です。</span> 4</div>

css

1/* 擬似要素でアイコンを表示 */ 2div span:nth-child(1):after { 3 content: ''; 4 background-image: url(/img/test.png); 5 background-repeat: no-repeat; 6 background-size: 22px; 7 maxWidth: 450; 8 width: 35px; 9 height: 22px; 10 display:inline-block; 11} 12/* ツールチップ部非表示 */ 13span#disp-tip { 14 display: none; 15} 16/* 擬似要素ホバーでツーチップ表示 */ 17div span:nth-child(1):hover:after ~ span#disp-tip { 18 display: block; 19}

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

こののHTMLだと1箇所しか使えないですが、大丈夫でしょうか?
また、今回の仕様だと、:afterのhoverで表示させることは難しいと思います。

疑似要素は特殊なものなので、「#disp-tipが後ろにある」とは言えません。
そのため、隣接セレクタなどが使用できません。
(実際のHTMLのソースコード上で、後ろにある・隣にある状態ならセレクタが効きます)
(:afterをhoverして色を変えたい、などなら可能です)

そのため、一番簡単で素直なやり方はspan:hoverにすることです。

CSS

1~略~ 2 3/* ホバーでツーチップ表示。次の要素なので隣接セレクタ+使用。~でもいけると思います */ 4div span:nth-child(1):hover + #disp-tip { 5 display: block; 6}

複数回使いたい・:afterで実装したいなら、
他の方法(classにしたりjQueryを使ったり)になります。

解決できれば幸いです。

投稿2018/06/01 07:02

編集2018/06/01 08:21
yyyy.yyyy

総合スコア53

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

例えば,.abc::afterにhoverしても,実際には.abcにhoverされたものとして扱われます.
これは仕様です

妥協案の例:

html

1<div class="tt" data-desc="・開始年月日、または終了年月日のどちらか必須です。">たいとる</div>

css

1.tt{ 2 position: relative; 3 display: inline-block; 4 background: azure url(https://placehold.jp/22x22.png) right no-repeat; 5 line-height: 22px; 6 padding-right: 25px; 7} 8.tt:hover::after{ 9 content: attr(data-desc); 10 display: block; 11 position: absolute; 12 top: 100%; 13 left: 0; 14 width: 300px; 15 max-width: 90vw; 16 background: #fff; 17 border: 1px solid; 18}

イメージ説明

data-属性とcontent: attr();を利用して,使い回しが効くようにしてるところと,::afterで表示させていた画像を,仕様を考慮し,背景画像にしたところが,ポイントです

ちなみに,:afterではなく,::afterです

投稿2018/08/13 07:41

編集2018/08/13 12:35
liveasnotes

総合スコア1284

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

疑似要素にhoverは指定できません。

投稿2018/06/01 08:10

macaron_xxx

総合スコア3191

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問