回答編集履歴

3

コードの追記

2016/04/08 21:11

投稿

flat
flat

スコア617

test CHANGED
@@ -107,3 +107,61 @@
107
107
  最後にCSSのセレクタをまとめたページがあったのでリンクしておきます。
108
108
 
109
109
  [CSS3のセレクタ全42種 まとめておさらい使い方リファレンス - EXP - クリエイティブな事をはじめた(い)全ての人達へ](http://wp-e.org/2014/05/20/2420/)
110
+
111
+
112
+
113
+ ---
114
+
115
+
116
+
117
+ 具体的なコードを追記しておきます。
118
+
119
+ ```HTML
120
+
121
+ <!--
122
+
123
+ チェックボックスはリストの外側に置いても良いですが、隣接させた方がセレクタの誤りを防止できて、隣接兄弟セレクタひとつで済むので楽です。
124
+
125
+ <a href="#">menu</a>となっていた箇所をラベルに変更しています。
126
+
127
+ -->
128
+
129
+ <ul>
130
+
131
+  <li><label for="switch">menu</label><input id="switch" type="checkbox">
132
+
133
+   <ul>
134
+
135
+    <li><a href="#">list</a></li>
136
+
137
+    <li><a href="#">list</a></li>
138
+
139
+    <li><a href="#">list</a></li>
140
+
141
+    <li><label for="switch">閉じる</label></li>
142
+
143
+   </ul>
144
+
145
+  </li>
146
+
147
+ </ul>
148
+
149
+ ```
150
+
151
+ ```CSS
152
+
153
+ #switch {
154
+
155
+ display: none;
156
+
157
+ }
158
+
159
+
160
+
161
+ #switch:checked + ul {
162
+
163
+ visibility: hidden;
164
+
165
+ }
166
+
167
+ ```

2

追記

2016/04/08 21:11

投稿

flat
flat

スコア617

test CHANGED
@@ -29,3 +29,81 @@
29
29
  これをうまく利用すると「メニューを閉じた状態(初期状態)」と「メニューを開いた状態(チェック状態)」をクリックまたはタッチで作り出すことができます。
30
30
 
31
31
  あとはご自分でルールセットを定義していけば求めているドロップメニューを作成できるはずなので、ぜひ頑張って作ってみてください。
32
+
33
+
34
+
35
+ ---
36
+
37
+
38
+
39
+ **追記**
40
+
41
+ 回答にあるCSSのセレクタ`#switch:checked + #switch-label`が何を意味しているのかを理解してみましょう。
42
+
43
+
44
+
45
+ ### #switch**:checked**
46
+
47
+ `:checked`擬似クラスは**ラジオボタン**と**チェックボックス**および**オプションボタン**がオンになっている状態を表します。
48
+
49
+ ここでは「#switchというIDを与えたチェックボックスがチェックされている状態」を意味します。
50
+
51
+
52
+
53
+ ###**+**
54
+
55
+ これは隣接兄弟セレクタといい、**直後(隣)にある要素**を指定するセレクタです。
56
+
57
+ ここでは`#switch`の直後に存在する要素である`#switch-label`を指定しています。
58
+
59
+ つまり「`#switch`**というIDを与えたチェックボックスの状態が**`:checked`**(オン)になった時に、直後に存在する要素**`#switch-label`**のテキストカラーを赤にする**」というルールセットを定義している事が分かります。
60
+
61
+
62
+
63
+ なお、この様なセレクタは複数を組み合わせて利用することも出来ます。
64
+
65
+ 例えば`#a:hover + #b + #c`とすると「`#a`にマウスカーソルが当たった時、その直後にある`#b`のそのまた直後にある`#c`に宣言したブロックの内容を適用する」という意味のセレクタになります。
66
+
67
+
68
+
69
+ ###これらを踏まえた上でイメージしやすいHTMLにしてみましょう。
70
+
71
+ ```HTML
72
+
73
+ <!-- 切り替えのスイッチとなるチェックボックス -->
74
+
75
+ <input id="switch" type="checkbox">
76
+
77
+ <!-- for属性を使えばラベルからチェックボックスをチェックできる -->
78
+
79
+ <label id="switch-label" for="switch">menu</label>
80
+
81
+
82
+
83
+ <!-- 状態を切り替えたい要素(メニュー) -->
84
+
85
+ <ul class="list">
86
+
87
+ <li>item</li>
88
+
89
+ <li>item</li>
90
+
91
+ <li>item</li>
92
+
93
+ </ul>
94
+
95
+ ```
96
+
97
+ ここでチェックボックス`#switch`をチェックした時にリスト`.list`を非表示にするには、どのようなルールセットを定義すると良いでしょうか?
98
+
99
+ 大分イメージしやすくなっているのではないでしょうか。
100
+
101
+
102
+
103
+ `#switch`**(チェックボックス)の状態がオンの時、その直後にある**`#switch-label`**(ラベル)のそのまた直後にある**`.list`**(メニュー)を指定するセレクタを書いてみてください。**
104
+
105
+
106
+
107
+ 最後にCSSのセレクタをまとめたページがあったのでリンクしておきます。
108
+
109
+ [CSS3のセレクタ全42種 まとめておさらい使い方リファレンス - EXP - クリエイティブな事をはじめた(い)全ての人達へ](http://wp-e.org/2014/05/20/2420/)

1

修正

2016/04/06 09:02

投稿

flat
flat

スコア617

test CHANGED
@@ -26,6 +26,6 @@
26
26
 
27
27
  ```
28
28
 
29
- これをうまく利用すると「メニューを閉じた状態(初期状態)」と「メニューを開いた状態(チェック状態)」を作り出すことができます。
29
+ これをうまく利用すると「メニューを閉じた状態(初期状態)」と「メニューを開いた状態(チェック状態)」をクリックまたはタッチで作り出すことができます。
30
30
 
31
31
  あとはご自分でルールセットを定義していけば求めているドロップメニューを作成できるはずなので、ぜひ頑張って作ってみてください。