- 最終更新日
- HTML
よく使うフォーム部品の一覧をご紹介!フォームで作成できる項目をチェック
ホームページにフォームを設置しようとする場合、今となってはすでに出来上がっているフォームシステムを使う事がほどんどです。
僕もフォームシステムを自分で作った事がないので、無償で提供してくれているエンジニアの方には本当に感謝しています。とはいえフォーム部品についてはある程度の知識が必要です。
フォームシステムのタグをカスタマイズしたり、デザインの調整は自分でおこなわなければいけないのでフォーム部品の記述方法や使い方は押さえておきましょう。
inputタグでよく使うフォーム部品
まずはinputタグの中でもよく使うフォーム部品を一覧で紹介します。inputタグというのはtype属性の値によってさまざまな形のフォーム部品を作る事ができます。
- text
-
1行のテキストボックスを作成します。
- <input type="text">
- checkbox
-
チェックボックスを作成します。
- <input type="checkbox" name="item">項目1
- <input type="checkbox" name="item">項目2
- radio
-
ラジオボタンを作成します。
- <input type="radio" name="sex" checked="checked">男性
- <input type="radio" name="sex">女性
- file
-
ファイルを送信します。
- <input type="file">
- tel
-
電話番号を記入するテキストボックスを作成します。
- <input type="tel">
-
メールアドレスを記入するテキストボックスを作成します。
- <input type="email">
- url
-
URLを記入するテキストボックスを作成します。
- <input type="url">
- number
-
数値を記入するテキストボックスを作成します。
- <input type="number">
- password
-
パスワードを記入するテキストボックスを作成します。
- <input type="password">
- submit
-
送信ボタンを作成します。
- <input type="submit">
- image
-
送信ボタンに画像を使用します。
- <input type="image" src="send.png">
- button
-
汎用ボタンを作成します。
- <input type="button" value="ボタン">
- reset
-
リセットボタンを作成します。
- <input type="reset">
- hidden
-
隠しデータを指定します。ブラウザの画面には表示されません。
- <input type="hidden">
inputタグでも上記の形はよく使われるものなので覚えておいた方が良いです。
上記ではラジオボタンにしか付けていないですが、チェックボックスにも「checked=”checked”」を追加する事ができ、初期値を設定しておく事ができます。
「type=”image”」はあまり使わなくなりましたね。以前は結構使っていましたが、今ではCSSだけでも十分なデザインを作れるようになりましたので好みで使い分けてください。
今回はCSSでデザインを加えているので、上記のサンプルはデフォルトの形ではないです。ここでは各フォーム部品でどんな事ができるのかを確認しておいてください。
inputタグのその他のフォーム部品
次はinputタグでも新しく追加されたもので、あまり使う頻度が高くないんですが、「こういう事もできるのかぁ」というくらいに思っておいてもらえればOKです。
ただ注意しなければいけないのは、ここで紹介するフォーム部品は2021年10月現在ですべてのブラウザに対応していないものもあります。パソコンでは表示されるけどスマホでは表示されないものがありますのでそちらもご確認ください。
- datetime
-
UTC(協定世界時)による日時を記入するテキストボックスを作成します。
- <input type="datetime">
- date
-
日時を記入するテキストボックスを作成します。
- <input type="date">
- month
-
月を記入するテキストボックスを作成します。
- <input type="month">
- week
-
週を記入するテキストボックスを作成します。
- <input type="week">
- time
-
時間を記入するテキストボックスを作成します。
- <input type="time">
- datetime-local
-
UTC(協定世界時)によらないローカル日時を記入するテキストボックスを作成します。
- <input type="datetime-local">
- search
-
検索キーワードを記入するテキストボックスを作成します。
- <input type="search">
- range
-
レンジを指定するバーを作成します。
- <input type="range">
- color
-
色を指定するカラーボックスを作成します。
- <input type="color">
この中でしたら「type=”date”」はまだ使う場面があります。予約日や希望日を選択してもらうのに便利です。ただスマホでの調整が難しいんですよねぇ。
「date」「month」「week」「time」「datetime-local」の5つはパソコンではちゃんと表示されるんですけど、スマホでは同じ表示になってくれないので実際に使うには躊躇します。
あとはサイト内検索の時に使う「type=”search”」も使う機会があるかもですね。
サイト内検索はワードプレスを使えば簡単に設置できるんですが、「type=”text”」で作られている方がほとんどです。僕もぶっちゃけ「type=”search”」を使った事がないです(笑)。
selectタグのフォーム部品
selectタグを使ったフォーム部品には大きく分けて「ドロップダウンメニュー」と「リストボックス」というものがあります。
ドロップダウンメニューは1行のボックスのみで表示しているんですが、ボックスをクリックすると隠れている複数行の選択項目が表示されるようになります。
もう一方の「リストボックス」では選択項目のすべてを表示します。なので選択項目が多い場合はドロップダウンメニューを使い、選択項目が少ない場合にはリストボックスを使用するという使い分けですね。
- ドロップダウンメニュー
-
ドロップダウンメニューを作成します。
- <select>
- <option value="item1" selected>項目1</option>
- <option value="item2">項目2</option>
- <option value="item3">項目3</option>
- </select>
- リストボックス
-
リストボックスを作成します。
- <select size="3">
- <option value="item1" selected>項目1</option>
- <option value="item2">項目2</option>
- <option value="item3">項目3</option>
- </select>
見え方としてはかなり印象が変わってきますが、記述自体はほぼほぼ同じです。リストボックスにしたければ「size」属性を加えて値に「選択項目数(今回の場合は3)」を記述してやるだけでOKです。
あとは初期値としてあらかじめ項目のひとつを選択しておく場合(上記では項目1)、optionタグに「selected」と記述しておきます。
ここでもスマホ表示の際の注意点として、リストボックスはドロップダウンメニューとして表示されてしまうという事です。なのでselectタグを使うのであればドロップダウンメニューの一択でも良いかも知れません。
textareaタグのフォーム部品
textareaタグでは複数行にわたる文字を記入するテキストボックスが作れます。inputタグでは複数行の記入欄は作れませんので、複数行の場合はtextareaタグを使うと覚えておいてください。
用途としては「お問い合わせ内容」の項目や「備考欄」などの項目をフォームに設置する時に使います。これらの項目はフォームにとっても重要な項目ですのでしっかりと使えるようにしていきましょう。
- textarea
-
複数行のテキストボックスを作成します。
- <textarea cols="30" rows="4" placeholder="ご意見などをご記入ください"></textarea>
属性も追加してみましたので確認しておきましょう。
placeholder属性を記述するとテキストボックス内に記入例や注意書きを表示する事ができます。placeholder属性はinputタグのテキストボックスにも使用が可能です。
そして、cols属性は1行当たりの文字数の指定、rows属性は行数を指定する事ができます。
今回はcols属性とrows属性を紹介のために付けてみましたけど、上記のtextareaはCSSでデザインしています。CSSでデザインする方がHTMLもスッキリしますのでお好きな方法をご利用ください。
buttonタグのフォーム部品
buttonタグはinputタグで作る送信ボタンと同じ機能を持っています。ただbuttonタグを使用するとCSSでのデザインに幅が広がりますので使い分けができると良いです。
- submit
-
送信ボタンを作成します。
- <button type="submit">送信</button>
- button
-
汎用ボタンを作成します。
- <button type="button">ボタン</button>
- reset
-
リセットボタンを作成します。
- <button type="reset">リセット</button>
記述の方法としてはbuttonタグもinputタグも同じです。では試しにbuttonタグとinputタグの両方のボタンに同じデザインをCSSで加えてみますのでご確認ください。
はい、一目瞭然ですが、ひとつ目のinputタグにはデザインが適応されず、ふたつ目のbuttonタグにのみデザインが反映されています。
詳しいプロパティの説明はしませんが、要はinputタグには「before」や「after」などの疑似要素を使う事ができません。なので、簡単にデザインするならinputタグ、凝ったデザインにするならbuttonタグを使いましょう。