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

回答編集履歴

4

サンプルリンク追加

2020/03/27 15:03

投稿

hatena19
hatena19

スコア34367

answer CHANGED
@@ -126,6 +126,7 @@
126
126
  </body>
127
127
  </html>
128
128
  ```
129
+ [サンプルページ](https://hatena19.com/sample/teratail249771_2.html)
129
130
 
130
131
  ---
131
132
 

3

説明追記

2020/03/27 15:03

投稿

hatena19
hatena19

スコア34367

answer CHANGED
@@ -15,7 +15,7 @@
15
15
 
16
16
  `location.hash = "link_target"`
17
17
 
18
- というロジックでいいかと。
18
+ というロジックでいいかと。あるいは、animate でスムーズスクロールさせる。
19
19
 
20
20
  ```html
21
21
  <!DOCTYPE html>

2

コード追記

2020/03/27 14:17

投稿

hatena19
hatena19

スコア34367

answer CHANGED
@@ -17,6 +17,116 @@
17
17
 
18
18
  というロジックでいいかと。
19
19
 
20
+ ```html
21
+ <!DOCTYPE html>
22
+ <html>
23
+ <head>
24
+ <meta charset="UTF-8">
25
+ <title>a</title>
26
+ <style>
27
+ /*タブ切り替え全体のスタイル*/
28
+ .tabs {
29
+ margin-top: 50px;
30
+ padding-bottom: 40px;
31
+ background-color: #fff;
32
+ box-shadow: 0 0 10px rgba(0, 0, 0, 0.2);
33
+ width: 700px;
34
+ margin: 0 auto;
35
+ }
36
+
37
+ /*タブのスタイル*/
38
+ .tab_item {
39
+ width: calc(100%/3);
40
+ height: 50px;
41
+ border-bottom: 3px solid #5ab4bd;
42
+ background-color: #d9d9d9;
43
+ line-height: 50px;
44
+ font-size: 16px;
45
+ text-align: center;
46
+ color: #565656;
47
+ display: block;
48
+ float: left;
49
+ text-align: center;
50
+ font-weight: bold;
51
+ transition: all 0.2s ease;
52
+ }
53
+
54
+ .tab_item:hover {
55
+ opacity: 0.75;
56
+ }
57
+
58
+ /*ラジオボタンを全て消す*/
59
+ input[name="tab_item"] {
60
+ display: none;
61
+ }
62
+
63
+ /*タブ切り替えの中身のスタイル*/
64
+ .tab_content {
65
+ display: none;
66
+ padding: 40px 40px 0;
67
+ clear: both;
68
+ overflow: hidden;
69
+ }
70
+
71
+
72
+ /*選択されているタブのコンテンツのみを表示*/
73
+ #tab01:checked~#tab01_content,
74
+ #tab02:checked~#tab02_content,
75
+ #tab03:checked~#tab03_content {
76
+ display: block;
77
+ }
78
+
79
+ /*選択されているタブのスタイルを変える*/
80
+ .tabs input:checked+.tab_item {
81
+ background-color: #5ab4bd;
82
+ color: #fff;
83
+ }
84
+ </style>
85
+ <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
86
+ </head>
87
+
88
+ <body>
89
+ <div class="tabs">
90
+ <input id="tab01" type="radio" name="tab_item" checked>
91
+ <label class="tab_item" for="tab01">tab01</label>
92
+ <input id="tab02" type="radio" name="tab_item">
93
+ <label class="tab_item" for="tab02">tab02</label>
94
+ <input id="tab03" type="radio" name="tab_item">
95
+ <label class="tab_item" for="tab03">tab03</label>
96
+ <div class="tab_content" id="tab01_content">
97
+ <p>tab01</p><p>tab01</p><p>tab01</p><p>tab01</p><p>tab01</p>
98
+ <p>tab01</p><p>tab01</p><p>tab01</p><p>tab01</p><p>tab01</p>
99
+ <p>tab01</p><p>tab01</p><p>tab01</p><p>tab01</p>
100
+ </div>
101
+ <div class="tab_content" id="tab02_content">
102
+ <a href="#link_target">link</a>
103
+ <p>tab02</p><p>tab02</p><p>tab02</p><p>tab02</p><p>tab02</p>
104
+ <p>tab02</p><p>tab02</p><p>tab02</p><p>tab02</p><p>tab02</p>
105
+ <p>tab02</p><p>tab02</p><p>tab02</p><p>tab02</p><p>tab02</p>
106
+ <div id="link_target">link_target</div>
107
+ <p>tab02</p><p>tab02</p><p>tab02</p><p>tab02</p><p>tab02</p>
108
+ <p>tab02</p><p>tab02</p><p>tab02</p><p>tab02</p><p>tab02</p>
109
+ <p>tab02</p><p>tab02</p><p>tab02</p><p>tab02</p><p>tab02</p>
110
+ </div>
111
+ <div class="tab_content" id="tab03_content">
112
+ <p>tab03</p><p>tab03</p><p>tab03</p><p>tab03</p><p>tab03</p>
113
+ <p>tab03</p><p>tab03</p><p>tab03</p><p>tab03</p><p>tab03</p>
114
+ <p>tab03</p><p>tab03</p><p>tab03</p><p>tab03</p>
115
+ </div>
116
+ <script>
117
+ $(function () {
118
+ if (window.location.hash === "#link_target") {
119
+ $('#tab02').prop('checked', true);
120
+ $('html,body').animate({
121
+ scrollTop: $('#link_target').offset().top
122
+ }, 'fast');
123
+ }
124
+ });
125
+ </script>
126
+ </body>
127
+ </html>
128
+ ```
129
+
20
130
  ---
21
131
 
22
132
  [【CSS】CSSだけでタブ切り替えを作る方法](https://bagelee.com/design/css/create_tabs_using_only_css/)

1

追記

2020/03/27 14:11

投稿

hatena19
hatena19

スコア34367

answer CHANGED
@@ -15,4 +15,10 @@
15
15
 
16
16
  `location.hash = "link_target"`
17
17
 
18
- というロジックでいいかと。
18
+ というロジックでいいかと。
19
+
20
+ ---
21
+
22
+ [【CSS】CSSだけでタブ切り替えを作る方法](https://bagelee.com/design/css/create_tabs_using_only_css/)
23
+
24
+ どうせスクリプト(jQuery)は必須になるのだから、タブ切り替えもjQueryでした方がシンプルになると思います。