回答編集履歴

2

追記、修正

2017/06/17 13:59

投稿

s8_chu
s8_chu

スコア14731

test CHANGED
@@ -86,7 +86,7 @@
86
86
 
87
87
  ---
88
88
 
89
- 文法的に良くないのですが、[`required属性`](https://reference.hyper-text.org/html5/attribute/required/)を使うことでさらに[`placeholder属性`](https://reference.hyper-text.org/html5/attribute/placeholder/)の動きに近いものを実装することができます。
89
+ 文法的に良くないのですが、[`required属性`](https://reference.hyper-text.org/html5/attribute/required/)を使うことでさらに[`placeholder属性`](https://reference.hyper-text.org/html5/attribute/placeholder/)の動きに近いものを実装することができます。また、わざわざ[`required属性`](https://reference.hyper-text.org/html5/attribute/required/)を使うくらいなら[`placeholder属性`](https://reference.hyper-text.org/html5/attribute/placeholder/)をそのまま使うという方法もあります。後者のほうが簡単ですね。
90
90
 
91
91
  ```HTML
92
92
 

1

追記

2017/06/17 13:59

投稿

s8_chu
s8_chu

スコア14731

test CHANGED
@@ -1,4 +1,6 @@
1
1
  的外れかもしれませんが、以下のように行ってはいかがでしょうか?
2
+
3
+ 以下のコードではフォームに入力した文字とプレースホルダが重なって表示されてしまいますが、**これがHTML4.01とCSSでの限界です**。多少文法を気にしないならば回答文に追記したように行えますが、**もしも可能ならばHTML5もしくはjavascriptを使ったほうが良い**と思います。
2
4
 
3
5
  ```HTML
4
6
 
@@ -79,3 +81,113 @@
79
81
  </html>
80
82
 
81
83
  ```
84
+
85
+ 追記
86
+
87
+ ---
88
+
89
+ 文法的に良くないのですが、[`required属性`](https://reference.hyper-text.org/html5/attribute/required/)を使うことでさらに[`placeholder属性`](https://reference.hyper-text.org/html5/attribute/placeholder/)の動きに近いものを実装することができます。
90
+
91
+ ```HTML
92
+
93
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
94
+
95
+ "http://www.w3.org/TR/html4/strict.dtd">
96
+
97
+ <html lang="ja">
98
+
99
+ <head>
100
+
101
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
102
+
103
+ <title>タイトル</title>
104
+
105
+ <style type="text/css">
106
+
107
+ * {
108
+
109
+ margin: 0;
110
+
111
+ padding: 0;
112
+
113
+ }
114
+
115
+
116
+
117
+ label, input {
118
+
119
+ position: relative;
120
+
121
+ }
122
+
123
+
124
+
125
+ label::after {
126
+
127
+ content: "text";
128
+
129
+ position: absolute;
130
+
131
+ left: 2.5em;
132
+
133
+ color: #666666;
134
+
135
+ }
136
+
137
+
138
+
139
+ input:focus, input:valid {
140
+
141
+ z-index: 1;
142
+
143
+ }
144
+
145
+
146
+
147
+ :invalid {
148
+
149
+ box-shadow: none;
150
+
151
+ }
152
+
153
+
154
+
155
+ :-moz-submit-invalid {
156
+
157
+ box-shadow: none;
158
+
159
+ }
160
+
161
+
162
+
163
+ :-moz-ui-invalid {
164
+
165
+ box-shadow: none;
166
+
167
+ }
168
+
169
+ </style>
170
+
171
+ </head>
172
+
173
+ <body>
174
+
175
+ <form action="">
176
+
177
+ <div>
178
+
179
+ <label class="input">text:
180
+
181
+ <input type="text" name="text" value="" required>
182
+
183
+ </label>
184
+
185
+ </div>
186
+
187
+ </form>
188
+
189
+ </body>
190
+
191
+ </html>
192
+
193
+ ```