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

回答編集履歴

1

code添付忘れ

2018/10/03 03:07

投稿

hectopascal1013
hectopascal1013

スコア466

answer CHANGED
@@ -1,3 +1,281 @@
1
1
  js/common.jsやcss/white.cssは添付のものだけでよろしいでしょうか?
2
2
  もしそうなら、html内に記述してやることで、サブメニューは出てきますね?
3
- リンクの問題でしょうか?
3
+ リンクの問題でしょうか?
4
+ javascriptを読むタイミングを最後にしてみました。
5
+
6
+ ```html,css,javascript
7
+ <!DOCTYPE html>
8
+ <html lang="ja">
9
+ <head>
10
+ <meta charset="utf-8">
11
+ <title>test</title>
12
+ <meta name="keywords" content="" />
13
+ <meta name="description" content="" />
14
+ <link rel="stylesheet" type="text/css" href="css/white.css" />
15
+ <script src="js/common.js"></script>
16
+ </head>
17
+ <body>
18
+ <nav role="navigation" class="nav">
19
+ <ul class="nav-items">
20
+ <li class="nav-item">
21
+ <a href="#" class="nav-link"><span>Home</span></a>
22
+ </li>
23
+ <li class="nav-item dropdown">
24
+ <a href="#" class="nav-link"><span>Products</span></a>
25
+ <nav class="submenu">
26
+ <ul class="submenu-items">
27
+ <li class="submenu-item"><a href="#" class="submenu-link">Product #1</a></li>
28
+ <li class="submenu-item"><a href="#" class="submenu-link">Product #2</a></li>
29
+ <li class="submenu-item"><a href="#" class="submenu-link">Product #3</a></li>
30
+ </ul>
31
+ </nav>
32
+ </li>
33
+ <li class="nav-item">
34
+ <a href="#" class="nav-link"><span>Services</span></a>
35
+ </li>
36
+ <li class="nav-item">
37
+ <a href="#" class="nav-link"><span>Pricing</span></a>
38
+ </li>
39
+ <li class="nav-item">
40
+ <a href="#" class="nav-link"><span>News</span></a>
41
+ </li>
42
+ <li class="nav-item dropdown">
43
+ <a href="#" class="nav-link"><span>More</span></a>
44
+ <nav class="submenu">
45
+ <ul class="submenu-items">
46
+ <li class="submenu-item"><a href="#" class="submenu-link">About</a></li>
47
+ <li class="submenu-item"><a href="#" class="submenu-link">Contact</a></li>
48
+ <li class="submenu-item"><hr class="submenu-seperator" /></li>
49
+ <li class="submenu-item"><a href="#" class="submenu-link">Support</a></li>
50
+ <li class="submenu-item"><a href="#" class="submenu-link">FAQs</a></li>
51
+ <li class="submenu-item"><a href="#" class="submenu-link">Careers</a></li>
52
+ </ul>
53
+ </nav>
54
+ </li>
55
+ </ul>
56
+ </nav>
57
+
58
+
59
+ <style>
60
+ /* Page */
61
+
62
+ html {
63
+ box-sizing: border-box;
64
+ }
65
+
66
+ *,
67
+ *:before,
68
+ *:after {
69
+ box-sizing: inherit;
70
+ }
71
+
72
+ body {
73
+ background-color: #3498db;
74
+ }
75
+
76
+ .nav {
77
+ width: 550px;
78
+ margin: 100px auto 0 auto;
79
+ text-align: center;
80
+ }
81
+
82
+ /* Navigation */
83
+
84
+ .nav {
85
+ font-family: sans-serif;
86
+ font-size: 24px;
87
+ }
88
+
89
+ .nav-items {
90
+ padding: 0;
91
+ list-style: none;
92
+ }
93
+
94
+ .nav-item {
95
+ display: inline-block;
96
+ margin-right: 25px;
97
+ }
98
+
99
+ .nav-item:last-child {
100
+ margin-right: 0;
101
+ }
102
+
103
+ .nav-link,
104
+ .nav-link:link,
105
+ .nav-link:visited,
106
+ .nav-link:active,
107
+ .submenu-link,
108
+ .submenu-link:link,
109
+ .submenu-link:visited,
110
+ .submenu-link:active {
111
+ display: block;
112
+ position: relative;
113
+ font-size: 14px;
114
+ letter-spacing: 1px;
115
+ cursor: pointer;
116
+ text-decoration: none;
117
+ outline: none;
118
+ }
119
+
120
+ .nav-link,
121
+ .nav-link:link,
122
+ .nav-link:visited,
123
+ .nav-link:active {
124
+ color: #fff;
125
+ font-weight: bold;
126
+ }
127
+
128
+ .nav-link::before {
129
+ content: "";
130
+ position: absolute;
131
+ top: 100%;
132
+ left: 0;
133
+ width: 100%;
134
+ height: 3px;
135
+ background: rgba(0,0,0,0.2);
136
+ opacity: 0;
137
+ -webkit-transform: translate(0, 10px);
138
+ transform: translate(0, 10px);
139
+ transition: opacity 0.3s ease, transform 0.3s ease;
140
+ }
141
+
142
+ .nav-link:hover::before,
143
+ .nav-link:hover::before {
144
+ opacity: 1;
145
+ -webkit-transform: translate(0, 5px);
146
+ transform: translate(0, 5px);
147
+ }
148
+
149
+ .dropdown {
150
+ position: relative;
151
+ }
152
+
153
+ .dropdown .nav-link {
154
+ padding-right: 15px;
155
+ height: 17px;
156
+ line-height: 17px;
157
+ }
158
+
159
+ .dropdown .nav-link::after {
160
+ content: "";
161
+ position:absolute;
162
+ top: 6px;
163
+ right: 0;
164
+ border: 5px solid transparent;
165
+ border-top-color: #fff;
166
+ }
167
+
168
+ .submenu {
169
+ position: absolute;
170
+ top: 100%;
171
+ left: 50%;
172
+ z-index: 100;
173
+ width: 200px;
174
+ margin-left: -100px;
175
+ background: #fff;
176
+ border-radius: 3px;
177
+ line-height: 1.46667;
178
+ margin-top: -5px;
179
+ box-shadow: 0 0 8px rgba(0,0,0,.3);
180
+ opacity:0;
181
+ -webkit-transform: translate(0, 0) scale(.85);
182
+ transform: translate(0, 0)scale(.85);
183
+ transition: transform 0.1s ease-out, opacity 0.1s ease-out;
184
+ pointer-events: none;
185
+ }
186
+
187
+ .submenu::after,
188
+ .submenu::before {
189
+ content: "";
190
+ position: absolute;
191
+ bottom: 100%;
192
+ left: 50%;
193
+ margin-left: -10px;
194
+ border: 10px solid transparent;
195
+ height: 0;
196
+ }
197
+
198
+ .submenu::after {
199
+ border-bottom-color: #fff;
200
+ }
201
+
202
+ .submenu::before {
203
+ margin-left: -13px;
204
+ border: 13px solid transparent;
205
+ border-bottom-color: rgba(0,0,0,.1);
206
+ -webkit-filter:blur(1px);
207
+ filter:blur(1px);
208
+ }
209
+
210
+ .submenu-items {
211
+ list-style: none;
212
+ padding: 10px 0;
213
+ }
214
+
215
+ .submenu-item {
216
+ display: block;
217
+ text-align: left;
218
+ }
219
+
220
+ .submenu-link,
221
+ .submenu-link:link,
222
+ .submenu-link:visited,
223
+ .submenu-link:active {
224
+ color: #3498db;
225
+ padding: 10px 20px;
226
+ }
227
+
228
+ .submenu-link:hover {
229
+ text-decoration: underline;
230
+ }
231
+
232
+ .submenu-seperator {
233
+ height: 0;
234
+ margin: 12px 10px;
235
+ border-top: 1px solid #eee;
236
+ }
237
+
238
+ .show-submenu .submenu {
239
+ opacity: 1;
240
+ -webkit-transform: translate(0, 25px) scale(1);
241
+ transform: translate(0, 25px) scale(1);
242
+ pointer-events: auto;
243
+ }
244
+ </style>
245
+
246
+ <script>
247
+ [].slice.call(document.querySelectorAll('.dropdown .nav-link')).forEach(function(el){
248
+ el.addEventListener('click', onClick, false);
249
+ });
250
+
251
+ function onClick(e){
252
+ e.preventDefault();
253
+ var el = this.parentNode;
254
+ el.classList.contains('show-submenu') ? hideSubMenu(el) : showSubMenu(el);
255
+ }
256
+
257
+ function showSubMenu(el){
258
+ el.classList.add('show-submenu');
259
+ document.addEventListener('click', function onDocClick(e){
260
+ e.preventDefault();
261
+ if(el.contains(e.target)){
262
+ return;
263
+ }
264
+ document.removeEventListener('click', onDocClick);
265
+ hideSubMenu(el);
266
+ });
267
+ }
268
+
269
+ function hideSubMenu(el){
270
+ el.classList.remove('show-submenu');
271
+ }
272
+
273
+
274
+ </script>
275
+
276
+
277
+ </body>
278
+ </html>
279
+
280
+
281
+ ```