【HTML/CSS】コピペで完成!おしゃれで使いやすい「お問い合わせフォーム」の作り方

Webサイトを作ったら、必ず欲しくなる機能。それが「お問い合わせフォーム」です。

仕事の依頼を受けたり、読者からの質問を受け付けたり。
フォームは、あなたと訪問者をつなぐ大切な「架け橋」です。

今回は、HTMLでフォームの骨組みを作り、CSSで「入力したくなるデザイン」に整える手順を解説します。

フォームを作る「4人の主役」たち

フォームを作るには、<form> という親タグの中に、以下の4つのパーツを配置します。

1. <label>(ラベル)

「名前」や「メールアドレス」といった項目名です。
このタグを使うと、「文字をクリックしても入力欄にカーソルが合う」ようになるので、使い勝手が爆上がりします。

2. <input>(インプット)

1行だけの入力欄です。名前やメールアドレスに使います。
type="text"type="email" のように属性を変えることで、役割が変わります。

3. <textarea>(テキストエリア)

複数行の入力欄です。お問い合わせ内容などの長文に使います。
※これだけは <input> ではなく、別のタグなので注意!

4. <button>(ボタン)

送信ボタンです。type="submit" を指定します。

ユーザーに優しいフォームにする「属性」設定

ただタグを書くだけでは不親切です。以下の設定を必ず入れましょう。

  • placeholder(プレースホルダー):
    placeholder="例:田中 太郎"
    入力欄の中に薄く表示されるヒントです。何を書けばいいか一瞬で分かります。
  • required(リクワイアード):
    required
    これを書くだけで「必須項目」になります。空欄のまま送信しようとすると、ブラウザが勝手に「入力してください!」と怒ってくれます。
  • type=”email”:
    スマホで入力する時、キーボードが自動的に「英数字モード(@などの記号入り)」に切り替わります。これだけでスマホユーザーは大喜びです。

実践:おしゃれなコンタクトフォームを作ろう

では、実際にコードを書いてみましょう。
CSSで見た目を整えて、入力中の枠の色が変わる(フォーカス機能)ようにしています。

<!DOCTYPE html>
<html lang="ja">
<head>
<style>
    body {
        font-family: sans-serif;
        padding: 50px;
        background-color: #f9f9f9;
    }

    /* フォーム全体を中央寄せにして枠をつける */
    .contact-form {
        max-width: 600px; /* 幅は最大600pxまで */
        margin: 0 auto;   /* 中央寄せ */
        padding: 40px;
        background-color: white;
        border-radius: 10px;
        box-shadow: 0 4px 10px rgba(0,0,0,0.1);
    }

    h2 { text-align: center; color: #333; }

    /* 各項目のグループ */
    .form-group {
        margin-bottom: 20px; /* 下に余白 */
    }

    /* ラベルのデザイン */
    label {
        display: block; /* 縦並びにする */
        margin-bottom: 8px;
        font-weight: bold;
        color: #555;
    }

    /* 入力欄(input, textarea共通)のデザイン */
    input[type="text"],
    input[type="email"],
    textarea {
        width: 100%;       /* 親要素いっぱいに広げる */
        padding: 12px;     /* 内側の余白 */
        border: 1px solid #ddd; /* 薄いグレーの枠線 */
        border-radius: 5px;
        box-sizing: border-box; /* paddingを含めた幅計算にする(崩れ防止) */
        font-size: 16px;
        transition: 0.3s; /* 色の変化を滑らかに */
    }

    /* ★ここ重要!入力中に枠の色を変える */
    input:focus,
    textarea:focus {
        outline: none; /* デフォルトの青い枠を消す */
        border-color: #00bcd4; /* オリジナルの色にする */
        background-color: #e0f7fa; /* 背景も薄く色付け */
    }

    /* テキストエリアの高さ */
    textarea {
        height: 150px;
        resize: vertical; /* 縦方向だけリサイズ許可 */
    }

    /* 送信ボタン */
    .btn-submit {
        display: block;
        width: 100%;
        background-color: #00bcd4;
        color: white;
        padding: 15px;
        border: none;
        border-radius: 5px;
        font-size: 18px;
        font-weight: bold;
        cursor: pointer;
        transition: 0.3s;
    }

    .btn-submit:hover {
        background-color: #008ba3; /* ホバー時に少し暗く */
    }
</style>
</head>
<body>

    <div class="contact-form">
        <h2>お問い合わせ</h2>
        
        <form action="#" method="post">
            
            <!-- お名前 -->
            <div class="form-group">
                <label for="name">お名前</label>
                <input type="text" id="name" name="name" placeholder="例:山田 太郎" required>
            </div>

            <!-- メールアドレス -->
            <div class="form-group">
                <label for="email">メールアドレス</label>
                <!-- type="email"にするとスマホ入力が楽になる! -->
                <input type="email" id="email" name="email" placeholder="例:abc@example.com" required>
            </div>

            <!-- お問い合わせ内容 -->
            <div class="form-group">
                <label for="message">お問い合わせ内容</label>
                <textarea id="message" name="message" placeholder="ご自由にご記入ください" required></textarea>
            </div>

            <!-- 送信ボタン -->
            <button type="submit" class="btn-submit">送 信</button>
            
        </form>
    </div>

</body>
</html>

まとめ:フォームは「おもてなし」

ただ入力欄を並べるだけでなく、以下の3点にこだわるのがプロの仕事です。

  1. Labelタグを使う: 文字クリックで入力できるようにする。
  2. Type属性を選ぶ: スマホユーザーの入力の手間を減らす。
  3. :focusで反応する: 「今ここに入力してますよ」と色で教えてあげる。

ちなみに、このコードだけでは「送信」ボタンを押してもメールは届きません(画面が切り替わるだけです)。
実際にメールを送るには、PHPなどの「バックエンド言語」や、Googleフォームなどのサービスと連携する必要があります。

まずは「見た目(UI)」を完璧に作れるようになりましょう!

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