HTML/CSS入門⑤ フォーム要素

HTML/CSS入門 HTML

Webサイトでユーザーから情報を送信してもらうために使われるのが
フォーム(form) です。

ログイン画面、会員登録、アンケート、検索フォーム……
どれもすべて フォーム の仕組みで作られています。

この記事では、HTMLフォームの基本構造から
実際に使う入力欄(input)、チェックボックス、送信ボタンまで
わかりやすく解説していきます。

フォーム(form)の基本構造

HTML のフォームは <form>タグ を使って囲みます。

<form action="/send" method="post">
  <!-- 入力欄など -->
</form>
属性説明
action送信先のURL
method送信方法(GET / POST)

初心者は深く考えすぎなくてOK!
今は「フォームから送った情報が action 先へ届く」と覚えれば十分です。

テキスト入力欄(input type=”text”)

最もよく使う入力欄です。

<label>名前:</label>
<input type="text" name="username">

表示例

名前:__________

name属性は必須!

<input type="text" name="username">

この name が実際の「データ名」 になります。
サーバー側はこの name を使って送られた値を取得します。

パスワード入力欄(input type=”password”)

入力した文字が「●●●」になるタイプ。

<label>パスワード:</label>
<input type="password" name="password">

ログインフォームに必須。

チェックボックス(input type=”checkbox”)

複数選択を許可したいときに便利。

<label>
  <input type="checkbox" name="lang" value="Java">
  Java
</label>

<label>
  <input type="checkbox" name="lang" value="HTML">
  HTML
</label>

複数選んだ場合、サーバー側には 配列のように複数の値 が送信されます。

配列とは、複数のデータを順番に並べて格納したデータ構造のこと。
[“リンゴ”,”みかん”,”なし”,”ブドウ”]みたいな感じで格納されています。

今はふーんそんなのがあるのかぐらいでOKです!

ラジオボタン(input type=”radio”)

複数選択ではなく「1つだけ選んでほしい」場合はこちら。

<label>
  <input type="radio" name="gender" value="male">
  男性
</label>

<label>
  <input type="radio" name="gender" value="female">
  女性
</label>

name を同じにするのがルール

同じ name の選択肢は 1つだけ選べるグループ になります。

セレクトボックス(select)

「プルダウンメニュー」のこと。
クリックすると下に項目がざーっっとでてくるあれのことです。

<label>職業:</label>
<select name="job">
  <option value="engineer">エンジニア</option>
  <option value="designer">デザイナー</option>
  <option value="teacher">先生</option>
</select>

▶ 表示例

職業:[ エンジニア ▼ ]

テキストエリア(textarea)

複数行の入力欄を作りたいときに使います。

<label>自己紹介:</label>
<textarea name="profile" rows="4" cols="40"></textarea>

ブログのコメント、問い合わせフォームなどでよく使います。

送信ボタン(input type=”submit” / button)

<input type="submit" value="送信する">

またはボタンタグでもOK:

<button type="submit">送信する</button>

これをクリックすることでデータがサーバ側に送信されます。

<button>や<input>要素の中に書いてあるtype属性はさまざまで、
「submit」「password」「text」「date」「email」などなど。
記載する内容によって入力欄が変化するので、是非お試しください!

実際によくあるフォームを丸ごと作ってみる

ここまでの要素を集めて、
よくあるプロフィール登録フォーム を例として作ります。

<form action="/register" method="post">
  <label>名前:</label>
  <input type="text" name="username"><br><br>

  <label>パスワード:</label>
  <input type="password" name="password"><br><br>

  <label>好きな言語:</label><br>
  <label><input type="checkbox" name="lang" value="Java"> Java</label><br>
  <label><input type="checkbox" name="lang" value="HTML"> HTML</label><br>
  <label><input type="checkbox" name="lang" value="Python"> Python</label><br><br>

  <label>性別:</label><br>
  <label><input type="radio" name="gender" value="male"> 男性</label><br>
  <label><input type="radio" name="gender" value="female"> 女性</label><br><br>

  <label>職業:</label>
  <select name="job">
    <option value="engineer">エンジニア</option>
    <option value="designer">デザイナー</option>
    <option value="teacher">先生</option>
  </select><br><br>

  <label>自己紹介:</label><br>
  <textarea name="profile" rows="4" cols="40"></textarea><br><br>

  <button type="submit">登録する</button>
</form>

ちなみに今ののままでは、フォームの画面は出ますが入力してボタンを押しても登録できません。

こういった登録やデータを扱うためには、「HTMLやCSS」などのデザインを作っていく言語に対して、フォームの入力項目をきちんとデータベースに登録したりと、裏で行われている作業。バックエンド側の言語「Java」「SQL」などの知識が必要になります。

フォームを書くときのコツ

最後に、現場でも役立つポイントを紹介します。

labelタグは必ず使う(クリックで入力欄がフォーカスされる)

<label for="username">名前:</label>
<input id="username" type="text" name="username">

アクセシビリティ(使いやすさ)が大幅に上がります。

name 属性はサーバー側に届く「変数名」

Java/Spring や PHP, Python のフォーム処理を書くと
name の重要性が実感できます。

初心者がよくやるミス:

✗ name を付けていない
✗ name がバラバラ
→ サーバーで値を受け取れない

CSS でフォームを整えると一気に“プロっぽい”見た目になる

このHTML/CSS入門シリーズでは、フォームをかっこよくする方法も紹介します。

CSSがあるのとないのとではぐっと雰囲気が変わるので、今すぐにでも!という方は

「登録フォーム デザイン かっこいい」などで検索けんさくぅ!!

まとめ

この記事では以下のフォーム要素を解説しました。

  • テキスト・パスワード入力
  • チェックボックス
  • ラジオボタン
  • セレクトボックス
  • テキストエリア
  • 送信ボタン
  • form タグの仕組み

フォームが理解できると、
Webアプリの「入力画面」や「検索画面」を作る力が一気につきます。

ではでは!次回!:HTML/CSS入門⑥ セマンティックタグとは?正しいページ構造の作り方

コメント

タイトルとURLをコピーしました