質問するログイン新規登録

回答編集履歴

2

誤解部分を修正

2018/06/01 08:21

投稿

yyyy.yyyy
yyyy.yyyy

スコア53

answer CHANGED
@@ -1,20 +1,22 @@
1
1
  こののHTMLだと1箇所しか使えないですが、大丈夫でしょうか?
2
2
  また、今回の仕様だと、:afterのhoverで表示させることは難しいと思います。
3
- (span要素の下にspan:afterが存在していますので、
4
- マウスがspan:afterに反応していないと認識されるからです。
5
- :afterをhoverして色を変えたい、などなら可能です)
6
3
 
4
+ 疑似要素は特殊なものなので、「#disp-tipが後ろにある」とは言えません。
5
+ そのため、隣接セレクタなどが使用できません。
6
+ (実際のHTMLのソースコード上で、後ろにある・隣にある状態ならセレクタが効きます)
7
+ (:afterをhoverして色を変えたい、などなら可能です)
8
+
7
9
  そのため、一番簡単で素直なやり方はspan:hoverにすることです。
8
10
  ```CSS
9
11
  ~略~
10
12
 
11
- /* ホバーでツーチップ表示。次の要素なので隣接セレクタ+使用 */
13
+ /* ホバーでツーチップ表示。次の要素なので隣接セレクタ+使用。~でもいけると思います */
12
14
  div span:nth-child(1):hover + #disp-tip {
13
15
  display: block;
14
16
  }
15
17
  ```
16
18
 
17
- 複数回使いたい・afterで実装したいなら、
19
+ 複数回使いたい・:afterで実装したいなら、
18
20
  他の方法(classにしたりjQueryを使ったり)になります。
19
21
 
20
22
  解決できれば幸いです。

1

おかしな部分があったので修正しました

2018/06/01 08:21

投稿

yyyy.yyyy
yyyy.yyyy

スコア53

answer CHANGED
@@ -1,27 +1,14 @@
1
1
  こののHTMLだと1箇所しか使えないですが、大丈夫でしょうか?
2
2
  また、今回の仕様だと、:afterのhoverで表示させることは難しいと思います。
3
3
  (span要素の下にspan:afterが存在していますので、
4
- マウスがspan:afterに反応していないと認識されるからです
4
+ マウスがspan:afterに反応していないと認識されるからです
5
+ :afterをhoverして色を変えたい、などなら可能です)
5
6
 
6
- もし今HTMLを変更しくない+CSSだけ解決したいら下記
7
+ のため、一番簡単素直やり方はspan:hoverにすることです
7
8
  ```CSS
8
- /* 擬似要素を使わずにアイコン
9
- (widthとheightが必須のためafterで指定する意味がない) */
10
- div span:nth-child(1){
11
- maxWidth: 450;
12
- width: 35px;
13
- height: 22px;
14
- display:inline-block;
15
- background-image: url(/img/test.png);
16
- background-repeat: no-repeat;
17
- background-size: 22px;
18
- }
19
- /* 擬似要素を使うなら画像だけの指定。
20
- しかもpositionもabsoluteで指定しなければいけません */
21
-
22
9
  ~略~
23
10
 
24
- /* 擬似要素ホバーでツーチップ表示 */
11
+ /* ホバーでツーチップ表示。次の要素なので隣接セレクタ+使用 */
25
12
  div span:nth-child(1):hover + #disp-tip {
26
13
  display: block;
27
14
  }