HTMLフォームの作り方【input・button解説】

HTMLフォームの作り方を初心者向けに解説。formタグの基本、input・textarea・select・checkbox・radio・buttonの使い方をコード例で紹介。中高生向け。無料。

2026年4月16日

HTML フォームとは?

ウェブサイトでよく見る「名前を入力してください」「送信ボタン」などの入力欄のことを フォーム(form) といいます。

HTML フォームの作り方を知ると、お問い合わせページ・ログイン画面・アンケートなど、さまざまなページが作れるようになります。

この記事では、フォームを作るための主要なHTMLタグを、コード例とともにわかりやすく解説します。

フォームの基本構造

フォームは <form> タグで全体を囲み、その中に入力欄やボタンを配置します。

<form>
  <!-- 入力欄やボタンをここに書く -->
</form>

<form> タグの中に書いた要素がフォームの一部として扱われます。

🔗 あわせてパスの書き方(相対・絶対)もチェックしてみましょう。

inputタグ:入力欄を作る

<input> タグは入力欄を作るタグです。type 属性を変えることで、さまざまな種類の入力欄が作れます。

type属性 入力欄の種類
text1行のテキスト入力欄
emailメールアドレス入力欄(形式チェックあり)
passwordパスワード入力欄(文字が隠れる)
number数値入力欄
checkboxチェックボックス
radioラジオボタン(1つだけ選択)
submit送信ボタン
<input type="text" placeholder="名前を入力">
<input type="email" placeholder="メールアドレス">
<input type="password" placeholder="パスワード">
<input type="checkbox"> 利用規約に同意する

▶ プレビュー

labelタグ:入力欄に説明をつける

<label> タグは入力欄に説明テキストをつけるタグです。for 属性と inputid を一致させると、ラベルをクリックしたときに入力欄にフォーカスが当たります。

<label for="name">名前</label>
<input type="text" id="name" name="name" placeholder="山田太郎">

📖 詳しくはHTML練習問題10選で解説しています。

buttonタグ:ボタンを作る

<button> タグはクリックできるボタンを作ります。type 属性で動作を指定します。

<!-- フォームを送信するボタン -->
<button type="submit">送信する</button>

<!-- フォームをリセットするボタン -->
<button type="reset">リセット</button>

<!-- JavaScriptで使う汎用ボタン -->
<button type="button" id="myBtn">クリック!</button>

ハンズオン:お問い合わせフォームを作ろう

名前・メールアドレス・メッセージを入力できるお問い合わせフォームを作ってみましょう。

<!DOCTYPE html>
<html lang="ja">
  <head>
    <meta charset="UTF-8">
    <title>お問い合わせ</title>
    <style>
      form { max-width: 480px; margin: 40px auto; }
      label { display: block; margin-top: 16px; font-weight: bold; }
      input, textarea {
        width: 100%;
        padding: 8px;
        margin-top: 4px;
        border: 1px solid #ccc;
        border-radius: 4px;
        box-sizing: border-box;
      }
      button {
        margin-top: 16px;
        padding: 10px 24px;
        background-color: #0d9488;
        color: white;
        border: none;
        border-radius: 6px;
        cursor: pointer;
      }
    </style>
  </head>
  <body>
    <form>
      <label for="name">名前</label>
      <input type="text" id="name" name="name" placeholder="【名前】">

      <label for="email">メールアドレス</label>
      <input type="email" id="email" name="email" placeholder="[email protected]">

      <label for="message">メッセージ</label>
      <textarea id="message" name="message" rows="5" placeholder="ご質問をどうぞ"></textarea>

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

👉 classとidの違いも参考にしてください。

フォームで使える入力要素の種類

フォームにはさまざまな入力要素を配置できます。よく使うものを紹介します。

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

1行のテキストを入力する欄です。名前やメールアドレスの入力に使います。placeholder属性を指定すると、入力前にヒントを表示できます。

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

入力した文字が「●●●」のように隠れて表示されます。パスワードの入力欄に使います。

メール入力(input type="email")

メールアドレス専用の入力欄です。スマホでは@マークが打ちやすいキーボードが表示されます。送信時にメールアドレスの形式かどうかを自動でチェックしてくれます。

数値入力(input type="number")

数値だけを入力できる欄です。上下の矢印ボタンで値を増減できます。min属性とmax属性で入力範囲を制限できます。

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

複数の選択肢から好きなだけ選べます。「利用規約に同意する」のような確認にも使います。

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

複数の選択肢から1つだけ選べます。同じname属性を持つラジオボタンはグループになり、その中から1つだけ選択できます。

テキストエリア(textarea)

複数行のテキストを入力できる欄です。感想や問い合わせ内容など、長い文章の入力に使います。rows属性で表示する行数を指定できます。

セレクトボックス(select)

ドロップダウンメニューから1つ選ぶ形式です。選択肢が多いときに使います。都道府県の選択などに向いています。

inputのtype属性にはもっとたくさんの種類があります。詳しくは「HTMLのinputタイプ一覧」で確認してください。

フォームのアクセシビリティ

フォームを作るとき、アクセシビリティにも気を配りましょう。

ポイント1:labelタグを使う

入力欄の説明にはlabelタグを使いましょう。labelタグのfor属性とinputタグのid属性を一致させると、ラベルをクリックしたときに入力欄にフォーカスが移ります。スクリーンリーダーも「この入力欄は何のためか」を正しく読み上げてくれます。

ポイント2:必須項目を明示する

必須項目にはrequired属性をつけましょう。空のまま送信しようとすると、ブラウザが自動で警告を表示してくれます。視覚的にも「*」マークや「必須」の文字で示すと親切です。

ポイント3:エラーメッセージをわかりやすく

入力内容に問題があるとき、何が間違っているかを具体的に伝えましょう。「入力エラー」ではなく「メールアドレスの形式が正しくありません」のように書きます。

フォームの送信をJavaScriptで処理したい場合は「JavaScriptのイベント処理入門」を読んでみてください。submitイベントを使って、送信前に入力内容をチェックする方法を学べます。

フォームはユーザーとウェブサイトをつなぐ大切な窓口です。使いやすいフォームを作れるようになると、アンケート、お問い合わせページ、ログイン画面など、さまざまな場面で活用できます。まずはシンプルなフォームから作って、少しずつ機能を追加していきましょう。

まとめ

  • form タグでフォーム全体を囲む
  • input タグの type 属性で入力欄の種類を変えられる
  • label タグで入力欄に説明テキストをつける
  • button タグでボタンを作る(type="submit" で送信)
  • textarea タグで複数行のテキスト入力欄を作れる

フォームの基本を覚えたら、レッスンでさらに実践的な使い方を学んでみましょう。

🚀 HTMLをレッスンで学ぼう!

このサイトのHTMLコースでは、フォームを含む実践的なページ作りをブラウザだけで学べます。無料・登録不要です。

HTMLコースを見る →
目次

コースで実際に手を動かして学ぼう

レッスンではコードを書きながら基礎が身につきます

HTMLコースを始める →

この記事に出てくる用語

📣 この記事が役に立ったら

Xでシェア

💬 引用する場合はこちらをご利用ください:

HTMLフォームの作り方を初心者向けに解説。formタグの基本、input・textarea・select・checkbox・radio・buttonの使い方をコード例で紹介。中高生向け。無料。

出典: https://start-web-programming.com/blog/html-form/