回答編集履歴

4

サンプルリンク追加

2020/03/27 15:03

投稿

hatena19
hatena19

スコア33715

test CHANGED
@@ -254,6 +254,8 @@
254
254
 
255
255
  ```
256
256
 
257
+ [サンプルページ](https://hatena19.com/sample/teratail249771_2.html)
258
+
257
259
 
258
260
 
259
261
  ---

3

説明追記

2020/03/27 15:03

投稿

hatena19
hatena19

スコア33715

test CHANGED
@@ -32,7 +32,7 @@
32
32
 
33
33
 
34
34
 
35
- というロジックでいいかと。
35
+ というロジックでいいかと。あるいは、animate でスムーズスクロールさせる。
36
36
 
37
37
 
38
38
 

2

コード追記

2020/03/27 14:17

投稿

hatena19
hatena19

スコア33715

test CHANGED
@@ -36,6 +36,226 @@
36
36
 
37
37
 
38
38
 
39
+ ```html
40
+
41
+ <!DOCTYPE html>
42
+
43
+ <html>
44
+
45
+ <head>
46
+
47
+ <meta charset="UTF-8">
48
+
49
+ <title>a</title>
50
+
51
+ <style>
52
+
53
+ /*タブ切り替え全体のスタイル*/
54
+
55
+ .tabs {
56
+
57
+ margin-top: 50px;
58
+
59
+ padding-bottom: 40px;
60
+
61
+ background-color: #fff;
62
+
63
+ box-shadow: 0 0 10px rgba(0, 0, 0, 0.2);
64
+
65
+ width: 700px;
66
+
67
+ margin: 0 auto;
68
+
69
+ }
70
+
71
+
72
+
73
+ /*タブのスタイル*/
74
+
75
+ .tab_item {
76
+
77
+ width: calc(100%/3);
78
+
79
+ height: 50px;
80
+
81
+ border-bottom: 3px solid #5ab4bd;
82
+
83
+ background-color: #d9d9d9;
84
+
85
+ line-height: 50px;
86
+
87
+ font-size: 16px;
88
+
89
+ text-align: center;
90
+
91
+ color: #565656;
92
+
93
+ display: block;
94
+
95
+ float: left;
96
+
97
+ text-align: center;
98
+
99
+ font-weight: bold;
100
+
101
+ transition: all 0.2s ease;
102
+
103
+ }
104
+
105
+
106
+
107
+ .tab_item:hover {
108
+
109
+ opacity: 0.75;
110
+
111
+ }
112
+
113
+
114
+
115
+ /*ラジオボタンを全て消す*/
116
+
117
+ input[name="tab_item"] {
118
+
119
+ display: none;
120
+
121
+ }
122
+
123
+
124
+
125
+ /*タブ切り替えの中身のスタイル*/
126
+
127
+ .tab_content {
128
+
129
+ display: none;
130
+
131
+ padding: 40px 40px 0;
132
+
133
+ clear: both;
134
+
135
+ overflow: hidden;
136
+
137
+ }
138
+
139
+
140
+
141
+
142
+
143
+ /*選択されているタブのコンテンツのみを表示*/
144
+
145
+ #tab01:checked~#tab01_content,
146
+
147
+ #tab02:checked~#tab02_content,
148
+
149
+ #tab03:checked~#tab03_content {
150
+
151
+ display: block;
152
+
153
+ }
154
+
155
+
156
+
157
+ /*選択されているタブのスタイルを変える*/
158
+
159
+ .tabs input:checked+.tab_item {
160
+
161
+ background-color: #5ab4bd;
162
+
163
+ color: #fff;
164
+
165
+ }
166
+
167
+ </style>
168
+
169
+ <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
170
+
171
+ </head>
172
+
173
+
174
+
175
+ <body>
176
+
177
+ <div class="tabs">
178
+
179
+ <input id="tab01" type="radio" name="tab_item" checked>
180
+
181
+ <label class="tab_item" for="tab01">tab01</label>
182
+
183
+ <input id="tab02" type="radio" name="tab_item">
184
+
185
+ <label class="tab_item" for="tab02">tab02</label>
186
+
187
+ <input id="tab03" type="radio" name="tab_item">
188
+
189
+ <label class="tab_item" for="tab03">tab03</label>
190
+
191
+ <div class="tab_content" id="tab01_content">
192
+
193
+ <p>tab01</p><p>tab01</p><p>tab01</p><p>tab01</p><p>tab01</p>
194
+
195
+ <p>tab01</p><p>tab01</p><p>tab01</p><p>tab01</p><p>tab01</p>
196
+
197
+ <p>tab01</p><p>tab01</p><p>tab01</p><p>tab01</p>
198
+
199
+ </div>
200
+
201
+ <div class="tab_content" id="tab02_content">
202
+
203
+ <a href="#link_target">link</a>
204
+
205
+ <p>tab02</p><p>tab02</p><p>tab02</p><p>tab02</p><p>tab02</p>
206
+
207
+ <p>tab02</p><p>tab02</p><p>tab02</p><p>tab02</p><p>tab02</p>
208
+
209
+ <p>tab02</p><p>tab02</p><p>tab02</p><p>tab02</p><p>tab02</p>
210
+
211
+ <div id="link_target">link_target</div>
212
+
213
+ <p>tab02</p><p>tab02</p><p>tab02</p><p>tab02</p><p>tab02</p>
214
+
215
+ <p>tab02</p><p>tab02</p><p>tab02</p><p>tab02</p><p>tab02</p>
216
+
217
+ <p>tab02</p><p>tab02</p><p>tab02</p><p>tab02</p><p>tab02</p>
218
+
219
+ </div>
220
+
221
+ <div class="tab_content" id="tab03_content">
222
+
223
+ <p>tab03</p><p>tab03</p><p>tab03</p><p>tab03</p><p>tab03</p>
224
+
225
+ <p>tab03</p><p>tab03</p><p>tab03</p><p>tab03</p><p>tab03</p>
226
+
227
+ <p>tab03</p><p>tab03</p><p>tab03</p><p>tab03</p>
228
+
229
+ </div>
230
+
231
+ <script>
232
+
233
+ $(function () {
234
+
235
+ if (window.location.hash === "#link_target") {
236
+
237
+ $('#tab02').prop('checked', true);
238
+
239
+ $('html,body').animate({
240
+
241
+ scrollTop: $('#link_target').offset().top
242
+
243
+ }, 'fast');
244
+
245
+ }
246
+
247
+ });
248
+
249
+ </script>
250
+
251
+ </body>
252
+
253
+ </html>
254
+
255
+ ```
256
+
257
+
258
+
39
259
  ---
40
260
 
41
261
 

1

追記

2020/03/27 14:11

投稿

hatena19
hatena19

スコア33715

test CHANGED
@@ -33,3 +33,15 @@
33
33
 
34
34
 
35
35
  というロジックでいいかと。
36
+
37
+
38
+
39
+ ---
40
+
41
+
42
+
43
+ [【CSS】CSSだけでタブ切り替えを作る方法](https://bagelee.com/design/css/create_tabs_using_only_css/)
44
+
45
+
46
+
47
+ どうせスクリプト(jQuery)は必須になるのだから、タブ切り替えもjQueryでした方がシンプルになると思います。