回答編集履歴

2

質問修正と、コメントを受け、回答を修正

2019/02/20 09:25

投稿

miyabi_pudding
miyabi_pudding

スコア9528

test CHANGED
@@ -1,3 +1,239 @@
1
+ 質問修正と、
2
+
3
+ コメントを受けまして、再度回答させていただきます。
4
+
5
+
6
+
7
+ HTMLの構成から見直された方がいいかと思います。
8
+
9
+ 下記でいかがでしょうか。
10
+
11
+
12
+
13
+ ```html
14
+
15
+ <header>
16
+
17
+   <a href="index.html" class="logo">
18
+
19
+     <img src="img/logo.png" alt="logo" width="68" height="41.125"/>
20
+
21
+   </a>
22
+
23
+
24
+
25
+ <!-- ホバー関連部、ここから -->
26
+
27
+   <p class="wrap">
28
+
29
+     <a href="mailto:~~" class="mail">
30
+
31
+       <img src="img/mail.svg" alt="mail" width="31"/>
32
+
33
+       <img class="balloon" src="img/balloon.svg" alt="balloon" width="45"/>
34
+
35
+ </a>
36
+
37
+   </p>
38
+
39
+ <!-- ここまで -->
40
+
41
+
42
+
43
+   <nav>
44
+
45
+     <ul>
46
+
47
+ <li class="current">
48
+
49
+ <a href="index.html">
50
+
51
+ ALL
52
+
53
+ </a>
54
+
55
+ </li>
56
+
57
+ <li class="1">
58
+
59
+ <a href="">
60
+
61
+ 1
62
+
63
+ </a>
64
+
65
+ </li>
66
+
67
+ <li class="2">
68
+
69
+ <a href="">
70
+
71
+ 2
72
+
73
+ </a>
74
+
75
+ </li>
76
+
77
+ <li class="3">
78
+
79
+ <a href="">
80
+
81
+ 3
82
+
83
+ </a>
84
+
85
+ </li>
86
+
87
+ <li class="4">
88
+
89
+ <a href="">
90
+
91
+ 4
92
+
93
+ </a>
94
+
95
+ </li>
96
+
97
+     </ul>
98
+
99
+   </nav>
100
+
101
+ </header>
102
+
103
+ ```
104
+
105
+
106
+
107
+ ```css
108
+
109
+ header {
110
+
111
+ width: 100%;
112
+
113
+ position: fixed;
114
+
115
+ z-index: 30;
116
+
117
+ }
118
+
119
+ header .logo {
120
+
121
+ float: left;
122
+
123
+ margin-top: 21px;
124
+
125
+ margin-left: 35px;
126
+
127
+ }
128
+
129
+
130
+
131
+ /* ホバー関連部、ここから */
132
+
133
+ .wrap {
134
+
135
+ text-align: right;
136
+
137
+ }
138
+
139
+ .mail {
140
+
141
+ display: inline-block;
142
+
143
+ margin-top: 29px;
144
+
145
+ margin-right: 47px;
146
+
147
+ position: relative;
148
+
149
+ }
150
+
151
+ .balloon {
152
+
153
+ position: absolute;
154
+
155
+ left: 0;
156
+
157
+ display: none;
158
+
159
+ top: 100%;
160
+
161
+ }
162
+
163
+ .mail:hover .balloon {
164
+
165
+ display: inline-block;
166
+
167
+ }
168
+
169
+ /* ここまで */
170
+
171
+
172
+
173
+ nav {
174
+
175
+ text-align: right;
176
+
177
+ margin-right: 137px;
178
+
179
+ margin-bottom: 60px;
180
+
181
+ }
182
+
183
+ nav ul {
184
+
185
+ margin: 0;
186
+
187
+ list-style-type: none;
188
+
189
+ padding-left: 0;
190
+
191
+ }
192
+
193
+ nav li {
194
+
195
+ display: inline-block;
196
+
197
+ padding-top: 32px;
198
+
199
+ padding-right: 41px;
200
+
201
+ font-size: 15px;
202
+
203
+ }
204
+
205
+ nav li > a {
206
+
207
+ text-decoration: none;
208
+
209
+ color: inherit;
210
+
211
+ }
212
+
213
+ nav li > a:hover {
214
+
215
+ color: royalblue;
216
+
217
+ }
218
+
219
+ ```
220
+
221
+
222
+
223
+ .mailの位置取りにfloatを使うのをやめ、
224
+
225
+ .balloonを、.mailの中にいれ、
226
+
227
+ .mailの位置を基準に、.balloonの位置どりをしました。
228
+
229
+
230
+
231
+
232
+
233
+ ----- 下記元回答 -----
234
+
235
+
236
+
1
237
  おそらくですが、
2
238
 
3
239
  中のものにfloat効かせているため、.wrapの高さが0になっているのが原因でしょう。

1

hoverターゲットの変更の提案

2019/02/20 09:25

投稿

miyabi_pudding
miyabi_pudding

スコア9528

test CHANGED
@@ -5,6 +5,10 @@
5
5
  floatをどこかでclearさせないと、floatの親要素は高さを持ちません。
6
6
 
7
7
  また、absoluteを効かせている要素を、float: rightを効かせている要素と同じ位置にさせるには、同じく右寄りにする必要があります。
8
+
9
+
10
+
11
+ また、今回のケースの場合、包括している.wrapをhoverターゲットにしないとうまく動かせないように思います。
8
12
 
9
13
 
10
14
 
@@ -66,7 +70,7 @@
66
70
 
67
71
  }
68
72
 
69
- .mail:hover .balloon {
73
+ .wrap:hover .balloon {
70
74
 
71
75
  /* img要素は、デフォルトは、inline-blockのためこちらに変更 */
72
76