回答編集履歴

1

code添付忘れ

2018/10/03 03:07

投稿

hectopascal1013
hectopascal1013

スコア466

test CHANGED
@@ -3,3 +3,559 @@
3
3
  もしそうなら、html内に記述してやることで、サブメニューは出てきますね?
4
4
 
5
5
  リンクの問題でしょうか?
6
+
7
+ javascriptを読むタイミングを最後にしてみました。
8
+
9
+
10
+
11
+ ```html,css,javascript
12
+
13
+ <!DOCTYPE html>
14
+
15
+ <html lang="ja">
16
+
17
+ <head>
18
+
19
+ <meta charset="utf-8">
20
+
21
+ <title>test</title>
22
+
23
+ <meta name="keywords" content="" />
24
+
25
+ <meta name="description" content="" />
26
+
27
+ <link rel="stylesheet" type="text/css" href="css/white.css" />
28
+
29
+ <script src="js/common.js"></script>
30
+
31
+ </head>
32
+
33
+ <body>
34
+
35
+ <nav role="navigation" class="nav">
36
+
37
+ <ul class="nav-items">
38
+
39
+ <li class="nav-item">
40
+
41
+ <a href="#" class="nav-link"><span>Home</span></a>
42
+
43
+ </li>
44
+
45
+ <li class="nav-item dropdown">
46
+
47
+ <a href="#" class="nav-link"><span>Products</span></a>
48
+
49
+ <nav class="submenu">
50
+
51
+ <ul class="submenu-items">
52
+
53
+ <li class="submenu-item"><a href="#" class="submenu-link">Product #1</a></li>
54
+
55
+ <li class="submenu-item"><a href="#" class="submenu-link">Product #2</a></li>
56
+
57
+ <li class="submenu-item"><a href="#" class="submenu-link">Product #3</a></li>
58
+
59
+ </ul>
60
+
61
+ </nav>
62
+
63
+ </li>
64
+
65
+ <li class="nav-item">
66
+
67
+ <a href="#" class="nav-link"><span>Services</span></a>
68
+
69
+ </li>
70
+
71
+ <li class="nav-item">
72
+
73
+ <a href="#" class="nav-link"><span>Pricing</span></a>
74
+
75
+ </li>
76
+
77
+ <li class="nav-item">
78
+
79
+ <a href="#" class="nav-link"><span>News</span></a>
80
+
81
+ </li>
82
+
83
+ <li class="nav-item dropdown">
84
+
85
+ <a href="#" class="nav-link"><span>More</span></a>
86
+
87
+ <nav class="submenu">
88
+
89
+ <ul class="submenu-items">
90
+
91
+ <li class="submenu-item"><a href="#" class="submenu-link">About</a></li>
92
+
93
+ <li class="submenu-item"><a href="#" class="submenu-link">Contact</a></li>
94
+
95
+ <li class="submenu-item"><hr class="submenu-seperator" /></li>
96
+
97
+ <li class="submenu-item"><a href="#" class="submenu-link">Support</a></li>
98
+
99
+ <li class="submenu-item"><a href="#" class="submenu-link">FAQs</a></li>
100
+
101
+ <li class="submenu-item"><a href="#" class="submenu-link">Careers</a></li>
102
+
103
+ </ul>
104
+
105
+ </nav>
106
+
107
+ </li>
108
+
109
+ </ul>
110
+
111
+ </nav>
112
+
113
+
114
+
115
+
116
+
117
+ <style>
118
+
119
+ /* Page */
120
+
121
+
122
+
123
+ html {
124
+
125
+ box-sizing: border-box;
126
+
127
+ }
128
+
129
+
130
+
131
+ *,
132
+
133
+ *:before,
134
+
135
+ *:after {
136
+
137
+ box-sizing: inherit;
138
+
139
+ }
140
+
141
+
142
+
143
+ body {
144
+
145
+ background-color: #3498db;
146
+
147
+ }
148
+
149
+
150
+
151
+ .nav {
152
+
153
+ width: 550px;
154
+
155
+ margin: 100px auto 0 auto;
156
+
157
+ text-align: center;
158
+
159
+ }
160
+
161
+
162
+
163
+ /* Navigation */
164
+
165
+
166
+
167
+ .nav {
168
+
169
+ font-family: sans-serif;
170
+
171
+ font-size: 24px;
172
+
173
+ }
174
+
175
+
176
+
177
+ .nav-items {
178
+
179
+ padding: 0;
180
+
181
+ list-style: none;
182
+
183
+ }
184
+
185
+
186
+
187
+ .nav-item {
188
+
189
+ display: inline-block;
190
+
191
+ margin-right: 25px;
192
+
193
+ }
194
+
195
+
196
+
197
+ .nav-item:last-child {
198
+
199
+ margin-right: 0;
200
+
201
+ }
202
+
203
+
204
+
205
+ .nav-link,
206
+
207
+ .nav-link:link,
208
+
209
+ .nav-link:visited,
210
+
211
+ .nav-link:active,
212
+
213
+ .submenu-link,
214
+
215
+ .submenu-link:link,
216
+
217
+ .submenu-link:visited,
218
+
219
+ .submenu-link:active {
220
+
221
+ display: block;
222
+
223
+ position: relative;
224
+
225
+ font-size: 14px;
226
+
227
+ letter-spacing: 1px;
228
+
229
+ cursor: pointer;
230
+
231
+ text-decoration: none;
232
+
233
+ outline: none;
234
+
235
+ }
236
+
237
+
238
+
239
+ .nav-link,
240
+
241
+ .nav-link:link,
242
+
243
+ .nav-link:visited,
244
+
245
+ .nav-link:active {
246
+
247
+ color: #fff;
248
+
249
+ font-weight: bold;
250
+
251
+ }
252
+
253
+
254
+
255
+ .nav-link::before {
256
+
257
+ content: "";
258
+
259
+ position: absolute;
260
+
261
+ top: 100%;
262
+
263
+ left: 0;
264
+
265
+ width: 100%;
266
+
267
+ height: 3px;
268
+
269
+ background: rgba(0,0,0,0.2);
270
+
271
+ opacity: 0;
272
+
273
+ -webkit-transform: translate(0, 10px);
274
+
275
+ transform: translate(0, 10px);
276
+
277
+ transition: opacity 0.3s ease, transform 0.3s ease;
278
+
279
+ }
280
+
281
+
282
+
283
+ .nav-link:hover::before,
284
+
285
+ .nav-link:hover::before {
286
+
287
+ opacity: 1;
288
+
289
+ -webkit-transform: translate(0, 5px);
290
+
291
+ transform: translate(0, 5px);
292
+
293
+ }
294
+
295
+
296
+
297
+ .dropdown {
298
+
299
+ position: relative;
300
+
301
+ }
302
+
303
+
304
+
305
+ .dropdown .nav-link {
306
+
307
+ padding-right: 15px;
308
+
309
+ height: 17px;
310
+
311
+ line-height: 17px;
312
+
313
+ }
314
+
315
+
316
+
317
+ .dropdown .nav-link::after {
318
+
319
+ content: "";
320
+
321
+ position:absolute;
322
+
323
+ top: 6px;
324
+
325
+ right: 0;
326
+
327
+ border: 5px solid transparent;
328
+
329
+ border-top-color: #fff;
330
+
331
+ }
332
+
333
+
334
+
335
+ .submenu {
336
+
337
+ position: absolute;
338
+
339
+ top: 100%;
340
+
341
+ left: 50%;
342
+
343
+ z-index: 100;
344
+
345
+ width: 200px;
346
+
347
+ margin-left: -100px;
348
+
349
+ background: #fff;
350
+
351
+ border-radius: 3px;
352
+
353
+ line-height: 1.46667;
354
+
355
+ margin-top: -5px;
356
+
357
+ box-shadow: 0 0 8px rgba(0,0,0,.3);
358
+
359
+ opacity:0;
360
+
361
+ -webkit-transform: translate(0, 0) scale(.85);
362
+
363
+ transform: translate(0, 0)scale(.85);
364
+
365
+ transition: transform 0.1s ease-out, opacity 0.1s ease-out;
366
+
367
+ pointer-events: none;
368
+
369
+ }
370
+
371
+
372
+
373
+ .submenu::after,
374
+
375
+ .submenu::before {
376
+
377
+ content: "";
378
+
379
+ position: absolute;
380
+
381
+ bottom: 100%;
382
+
383
+ left: 50%;
384
+
385
+ margin-left: -10px;
386
+
387
+ border: 10px solid transparent;
388
+
389
+ height: 0;
390
+
391
+ }
392
+
393
+
394
+
395
+ .submenu::after {
396
+
397
+ border-bottom-color: #fff;
398
+
399
+ }
400
+
401
+
402
+
403
+ .submenu::before {
404
+
405
+ margin-left: -13px;
406
+
407
+ border: 13px solid transparent;
408
+
409
+ border-bottom-color: rgba(0,0,0,.1);
410
+
411
+ -webkit-filter:blur(1px);
412
+
413
+ filter:blur(1px);
414
+
415
+ }
416
+
417
+
418
+
419
+ .submenu-items {
420
+
421
+ list-style: none;
422
+
423
+ padding: 10px 0;
424
+
425
+ }
426
+
427
+
428
+
429
+ .submenu-item {
430
+
431
+ display: block;
432
+
433
+ text-align: left;
434
+
435
+ }
436
+
437
+
438
+
439
+ .submenu-link,
440
+
441
+ .submenu-link:link,
442
+
443
+ .submenu-link:visited,
444
+
445
+ .submenu-link:active {
446
+
447
+ color: #3498db;
448
+
449
+ padding: 10px 20px;
450
+
451
+ }
452
+
453
+
454
+
455
+ .submenu-link:hover {
456
+
457
+ text-decoration: underline;
458
+
459
+ }
460
+
461
+
462
+
463
+ .submenu-seperator {
464
+
465
+ height: 0;
466
+
467
+ margin: 12px 10px;
468
+
469
+ border-top: 1px solid #eee;
470
+
471
+ }
472
+
473
+
474
+
475
+ .show-submenu .submenu {
476
+
477
+ opacity: 1;
478
+
479
+ -webkit-transform: translate(0, 25px) scale(1);
480
+
481
+ transform: translate(0, 25px) scale(1);
482
+
483
+ pointer-events: auto;
484
+
485
+ }
486
+
487
+ </style>
488
+
489
+
490
+
491
+ <script>
492
+
493
+ [].slice.call(document.querySelectorAll('.dropdown .nav-link')).forEach(function(el){
494
+
495
+ el.addEventListener('click', onClick, false);
496
+
497
+ });
498
+
499
+
500
+
501
+ function onClick(e){
502
+
503
+ e.preventDefault();
504
+
505
+ var el = this.parentNode;
506
+
507
+ el.classList.contains('show-submenu') ? hideSubMenu(el) : showSubMenu(el);
508
+
509
+ }
510
+
511
+
512
+
513
+ function showSubMenu(el){
514
+
515
+ el.classList.add('show-submenu');
516
+
517
+ document.addEventListener('click', function onDocClick(e){
518
+
519
+ e.preventDefault();
520
+
521
+ if(el.contains(e.target)){
522
+
523
+ return;
524
+
525
+ }
526
+
527
+ document.removeEventListener('click', onDocClick);
528
+
529
+ hideSubMenu(el);
530
+
531
+ });
532
+
533
+ }
534
+
535
+
536
+
537
+ function hideSubMenu(el){
538
+
539
+ el.classList.remove('show-submenu');
540
+
541
+ }
542
+
543
+
544
+
545
+
546
+
547
+ </script>
548
+
549
+
550
+
551
+
552
+
553
+ </body>
554
+
555
+ </html>
556
+
557
+
558
+
559
+
560
+
561
+ ```