回答編集履歴
2
追記
test
CHANGED
@@ -40,6 +40,8 @@
|
|
40
40
|
|
41
41
|
> `input.in1[type="text"]:valid ~ label.label4`を外す
|
42
42
|
|
43
|
+
|
44
|
+
|
43
45
|
とフォーカスが外れたときに`label`が`input`内に戻ってしまいますね…。
|
44
46
|
|
45
47
|
|
1
間違いの修正
test
CHANGED
@@ -24,8 +24,36 @@
|
|
24
24
|
|
25
25
|
参考にされているサイトでは`input`が`required`になっており、必須なのに空白のため、`invalid`となり上記CSSが効きません。(=inputの中にlabelが来るように見える)
|
26
26
|
|
27
|
-
対象の`input`を`required`にするか、`input.in1[type="text"]:valid ~ label.label4`を外すかのいずれかで期待通りの動きになるかと思います。
|
27
|
+
対象の`input`を`required`~~にするか、`input.in1[type="text"]:valid ~ label.label4`を外すかのいずれか~~で期待通りの動きになるかと思います。
|
28
28
|
|
29
29
|
|
30
30
|
|
31
31
|
※参考サイトにて、Emailが`type="email"`ではなく`type="text"`になっているのは、`type="email"`にしてしまうとEmailの形式になるまで`invalid`になってしまい、`focus`が外れた際に`label`が`input`の中に来るように見えてしまうためです。
|
32
|
+
|
33
|
+
|
34
|
+
|
35
|
+
## 追記
|
36
|
+
|
37
|
+
間違っていたので訂正させてください。
|
38
|
+
|
39
|
+
|
40
|
+
|
41
|
+
> `input.in1[type="text"]:valid ~ label.label4`を外す
|
42
|
+
|
43
|
+
とフォーカスが外れたときに`label`が`input`内に戻ってしまいますね…。
|
44
|
+
|
45
|
+
|
46
|
+
|
47
|
+
回避策としては`input.in1[type="text"]:not(:placeholder-shown) ~ label.label4`
|
48
|
+
|
49
|
+
として、HTML側に
|
50
|
+
|
51
|
+
`<input placeholder=" ">`を追加すればいいのですが、
|
52
|
+
|
53
|
+
`:placeholder-shown`はIEやEdgeで対応していないので、考えものですね。
|
54
|
+
|
55
|
+
[https://caniuse.com/#search=placeholder-shown](https://caniuse.com/#search=placeholder-shown)
|
56
|
+
|
57
|
+
|
58
|
+
|
59
|
+
やはり`required`と`:valid`を組み合わせるのがいいんですかねぇ…。
|