回答編集履歴

2

誤解部分を修正

2018/06/01 08:21

投稿

yyyy.yyyy
yyyy.yyyy

スコア53

test CHANGED
@@ -2,11 +2,15 @@
2
2
 
3
3
  また、今回の仕様だと、:afterのhoverで表示させることは難しいと思います。
4
4
 
5
- (span要素の下にspan:afterが存在していますので、
6
5
 
7
- マウスがspan:afterに反応していないと認識されるからです。
8
6
 
7
+ 疑似要素は特殊なものなので、「#disp-tipが後ろにある」とは言えません。
8
+
9
+ そのため、隣接セレクタなどが使用できません。
10
+
11
+ (実際のHTMLのソースコード上で、後ろにある・隣にある状態ならセレクタが効きます)
12
+
9
- :afterをhoverして色を変えたい、などなら可能です)
13
+ :afterをhoverして色を変えたい、などなら可能です)
10
14
 
11
15
 
12
16
 
@@ -18,7 +22,7 @@
18
22
 
19
23
 
20
24
 
21
- /* ホバーでツーチップ表示。次の要素なので隣接セレクタ+使用 */
25
+ /* ホバーでツーチップ表示。次の要素なので隣接セレクタ+使用。~でもいけると思います */
22
26
 
23
27
  div span:nth-child(1):hover + #disp-tip {
24
28
 
@@ -30,7 +34,7 @@
30
34
 
31
35
 
32
36
 
33
- 複数回使いたい・afterで実装したいなら、
37
+ 複数回使いたい・:afterで実装したいなら、
34
38
 
35
39
  他の方法(classにしたりjQueryを使ったり)になります。
36
40
 

1

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

2018/06/01 08:21

投稿

yyyy.yyyy
yyyy.yyyy

スコア53

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