回答編集履歴

1

コード追記

2020/10/25 05:10

投稿

hatena19
hatena19

スコア33761

test CHANGED
@@ -7,3 +7,111 @@
7
7
 
8
8
 
9
9
  document.querySelector() では使えるのでJavaScriptでの対応になります。
10
+
11
+
12
+
13
+ 追記
14
+
15
+ ---
16
+
17
+ > ただHTMLの構造が下記のようにlabelタグ内にinputタグを入れるときはどのようにcssを記述すれば良いのでしょうか?
18
+
19
+
20
+
21
+ よく考えたら、方法を思いつきました。
22
+
23
+
24
+
25
+ input は `width: 0` で非表示にして、input自体の疑似要素でラジオボタンを表現すればいいだけでした。
26
+
27
+
28
+
29
+ ```html
30
+
31
+ <div class="radio">
32
+
33
+ <label for="hoge1">test1<input type="radio" id="hoge1" class="hoge" name="hoge"></label>
34
+
35
+ <label for="hoge2">test2<input type="radio" id="hoge2" class="hoge" name="hoge"></label>
36
+
37
+ </div>
38
+
39
+ ```
40
+
41
+
42
+
43
+ ```css
44
+
45
+ .radio > label {
46
+
47
+ position: relative;
48
+
49
+ display: block;
50
+
51
+ padding-left: 30px;
52
+
53
+ }
54
+
55
+
56
+
57
+ .hoge {
58
+
59
+ width: 0;
60
+
61
+ position: absolute;
62
+
63
+ left: 0;
64
+
65
+ }
66
+
67
+
68
+
69
+ .hoge::before, .hoge:checked::after {
70
+
71
+ content: "";
72
+
73
+ display: block;
74
+
75
+ position: absolute;
76
+
77
+ top: 0;
78
+
79
+ left: 0;
80
+
81
+ border-radius: 50%;
82
+
83
+ }
84
+
85
+
86
+
87
+ .hoge::before {
88
+
89
+ width: 15px;
90
+
91
+ height: 15px;
92
+
93
+ border: 1px solid #999;
94
+
95
+ }
96
+
97
+
98
+
99
+ .hoge:checked::after {
100
+
101
+ top: 3px;
102
+
103
+ left: 3px;
104
+
105
+ width: 11px;
106
+
107
+ height: 11px;
108
+
109
+ background: #d01137;
110
+
111
+ }
112
+
113
+ ```
114
+
115
+
116
+
117
+ [CodePenサンプル](https://codepen.io/hatena19/pen/bGegyER?editors=0110)