webフォームで使うHTMLや、その属性についてのまとめ
ほかのHTMLタグと比べると複雑な印象のある入力フォームで、
フォームの部品をつくるのに使われるタグと、
それぞれのタグでよく使われる属性について、改めてまとめてみました。
フォームで必須&よく使われるHTMLタグの
<form>,<input>,<textarea>,<select>,<label>,<button>の6つを順番に深めていきます。
<form>タグ
フォームを作成する際に、<form>〜</form>タグでかこみます。
フォームの部品(テキストボックスやボタン、チェックボックス等)となる部分を
<form>タグの中に配置します。
<form action="" method="post">
<!-- フォームの部品 -->
</form>
action属性 | 入力したフォームのデータを送る送信先を指定。記述がない場合は、表示しているURLに送られます。 |
method属性 | 入力したフォームのデータの送信方法を設定。値は、”get”(初期値)か”post”を選択できますが、個人情報が表示されてしまうのを防ぐため、基本post(データをURL以外で送信)を選択します。 |
enctype属性 | フォームが送信するデータの形式を指定します。通常指定は不要ですが、添付ファイルを送る機能をつける場合、enctype=”multipart/form-data”(データをマルチパートデータとして送信)を指定する必要があります。 |
<input>タグ
フォームの部品をつくります(テキストボックスやチェックボックス等)。
終了タグは不要です。
属性はたくさんあるみたいですが、使いそうな種類をメモしました。
- inputタグにcssの疑似要素は使えません。
- CSSでは、input[type=”checkbox”]{ 〜 }などと指定します。
Type属性
inputタグの形式を指定。デフォルトの初期値はtype=”text”ですが、
type属性を指定すると、それぞれに合わせた入力欄になり、使いやすくなります。
<!--一行のテキストボックス-->
<input type="text" name="sample">
<!--電話番号-->
<input type="tel" name="tel">
<!--メールアドレス-->
<input type="email" name="email">
<!--ラジオボタン(1つだけ選択が可能)-->
<!--checkedで、最初から選択しておくことができる。-->
<input type="radio" name="pets" value="1" checked>うさぎ
<input type="radio" name="pets" value="2">いぬ
<!--チェックボックス(複数選択が可能)-->
<input type=checkbox name="pets" value="1" checked>うさぎ
<input type=checkbox name="pets" value="2">いぬ
<input type=checkbox name="pets" value="3">ねこ
<!--ファイル選択(acceptは選択できるファイルの型を指定)-->
<input type="file" name="filedata" accept=".jpg, .jpeg, .png">
<!--パスワード-->
<input type="password" name="password" >
<!--検索テキストの入力欄-->
<input type="search" name="q" >
<!--送信ボタン-->
<input type="submit" value="送信する">
Name属性
フォームの入力欄の名前です。任意の名前をつけることができ、
書いておくとそれぞれの区別がつきやすいのと、データ送信時に一緒に送られます。
(javascriptなどでも参照できるようなので、半角英数字の名前が無難そう)
Value属性
フォームの値のことです。name属性と一緒に使われるケースが多いです。
送信される値の初期値になります。
<!-- #ffffffが初期値として表示される -->
<input type="color" value="#ffffff">
- input type=”checkbox” の時、デフォルトのvalue属性の値は「 on」 になります。
- value属性を書いてない場合、「name属性名=on」というデータが送信されます。
Placeholder属性
入力見本が入ります。password, search, tel, text, urlの時に使用可能です。
value属性との違いは、value属性だと値の初期値になりますが、
placeholderの場合は、フォームへの入力を促すための入力例です。
<input type="tel" placeholder=”00-0000-0000”>
Required属性
加えると項目の入力が必須になります。
<input type="tel" required>
Minlength / Maxlength属性
password, search, tel, text, urlの時に使用します。
maxlength属性で最大の文字数、minlength属性で最小の文字数を指定します。
Size属性
email, password, tel, textの時に使用します。
入力内容をどれだけ表示するかを指定します。
<input type="text" name="sample" required
minlength="4" maxlength="8" size="10">
- password やtextの時は、初期値が20になっています。
- cssの幅の指定があれば、そちらが優先されます。
Disabled属性
入力や選択ができなくなり、値も送信されなくなります。
<input type="text" placeholder="名前" disabled>
<textarea>タグ
複数行の入力欄です。value属性は使えません。
<textarea name="sample" rows="5" cols="33">
テキストフィールドの中身が入ります
</textarea>
rows 属性 | テキストの行数 |
cols 属性 | 平均的な文字幅を基準にした文字数 |
rowsとcolsでの大きさを指定する(文字数の制限するのとは異なる)ことで、
ブラウザごとのデフォルトが違っても、より一貫性を持たせやすくなります。
<select>タグ
セレクトボックスを作成します。
<option>タグが選択肢です。
送信するときに、選択したvalue属性の値が一緒に送られます。
(value属性がない場合は、デフォルトで<option>の中身の値が送られます)
<select name="pets" multiple>
<!-- 例えば、うさぎを選ぶと「ペット1」の値が送信される -->
<option value="" selected>---</option>
<option value="ペット1">うさぎ</option>
<option value="ペット2">いぬ</option>
<option value="ペット3">ねこ</option>
</select>
multiple属性 | リストの複数の選択肢を選択することができます。 |
selected属性 | 最初に開いた時の選択状態を指定することができます。 |
<label>タグ
フォームの部品と、その項目名を関連づけます。
2つを紐付けることで、<label>の箇所をクリックしても、
フォーム入力欄をクリックして選んだときと同じ動作になり、
例えば狭い画面でもタップがしやすくなります。
2つの記入方法
1 <label>〜</label>で挟む
<label>アドレス
<input type="email" name="email">
</label>
2 <label>のfor属性の値=フォーム部品のid属性の値にする
<label for="username">名前</label>
<input type="tet" name="name" id="username">
チェックボックスなど、ほかの箇所で使うときの例はこちら↓です。
チェックボックスに<label>をつけるとき
<div>
<input type="checkbox" id="check1" name="A" value="grape" checked>
<label for="check1">grape</label>
</div>
<div>
<input type="checkbox" id="check2" name="A" value="apple">
<label for="check2">apple</label>
</div>
セレクトボックスに<label>をつけるとき
<label for="fruit-label" class="form__title">FRUIT</label>
<select id="fruit-label" name="fruit">
<option value="" selected>-----</option>
<option value="grape">grape</option>
<option value="orange">orange</option>
<option value="peach">peach</option>
</select>
<button>タグ
ボタンを作成します。
<input type=’submit’ value=’送信’>のタグだと擬似要素が使えず、加工がしにくいので、
送信ボタンには、cssで調整をしやすい<button>を使うことが勧められています。
<button type="submit" value="send">送信</button>
まとめ
特に<input>タグの中の種類は色々あるので、全ては覚えるのは難しいのですが、
フォームで使われる種類は限られているので、使っていくうちに深めてゆけたらと思います。
最後までご覧いただきありがとうございました!