Webフォームの中でも頻繁に使用される「メールアドレス入力欄」は、ユーザー体験を大きく左右する重要な要素です。正しく入力されなければ連絡が届かず、ビジネスチャンスを逃してしまうこともあります。本記事では、HTMLでの基本的な記述から、CSSによる見た目のカスタマイズ、JavaScriptを活用したリアルタイムバリデーションまでを丁寧に解説します。初心者でも実装できるように、サンプルコードを交えながら3000文字以上で紹介していきます。
HTMLでメールアドレスを入力するための基本は、<input type="email">
を使うことです。この記述により、ブラウザが自動で形式チェックを行い、不正なメールアドレス形式を弾いてくれます。
<form>
<label for="email">メールアドレス:</label>
<input type="email" id="email" name="email" required>
<button type="submit">送信</button>
</form>
type="email"
:メールアドレス用の入力欄に指定。required
:未入力の場合、送信できないようにする。id
とfor
:ラベルと入力欄を結びつけ、ユーザー補助機能を強化。これだけで、メールアドレスの基本的な入力欄は完成します。次に見た目を整えていきましょう。
フォームの見た目はユーザー体験に直結します。以下のようにCSSで入力欄とボタンをスタイリングすると、洗練された印象を与えられます。
form {
max-width: 400px;
margin: 0 auto;
font-family: sans-serif;
}
label {
display: block;
margin-bottom: 8px;
font-weight: bold;
}
input[type="email"] {
width: 100%;
padding: 10px;
margin-bottom: 12px;
border: 1px solid #ccc;
border-radius: 4px;
}
input[type="email"]:focus {
border-color: #0066cc;
outline: none;
}
button {
padding: 10px 20px;
background-color: #0066cc;
color: #fff;
border: none;
border-radius: 4px;
cursor: pointer;
}
button:hover {
background-color: #0055aa;
}
これで、シンプルながら見やすく、ユーザーが使いやすい入力欄が完成します。
より丁寧なユーザー体験を提供するために、JavaScriptで入力中にエラーを表示するようにしてみましょう。
htmlコピーする編集する<p id="emailError" style="color: red;"></p>
const emailInput = document.getElementById("email");
const errorMessage = document.getElementById("emailError");
emailInput.addEventListener("input", function () {
const email = emailInput.value;
if (emailInput.validity.typeMismatch) {
errorMessage.textContent = "有効なメールアドレスを入力してください。";
} else {
errorMessage.textContent = "";
}
});
typeMismatch
を利用することで、HTML側のバリデーションルールを活用。入力ミスを減らすために、placeholder
やautocomplete
を活用しましょう。
<input type="email" id="email" name="email" required placeholder="example@example.com" autocomplete="email">
placeholder
:例としての文字列を表示。autocomplete
:ブラウザの入力補完機能を有効化。これにより、ユーザーは迷わず入力でき、ミスが減ります。
ブラウザのバリデーションでは不十分なケースもあります。以下のように正規表現でさらに厳密にチェックできます。
const validateEmail = (email) => {
const re = /^[a-zA-Z0-9._+-]+@[a-zA-Z0-9-]+\.[a-zA-Z]{2,}$/;
return re.test(String(email).toLowerCase());
};
emailInput.addEventListener("blur", function () {
if (!validateEmail(emailInput.value)) {
errorMessage.textContent = "形式が正しくありません。例:user@example.com";
} else {
errorMessage.textContent = "";
}
});
スマートフォンでの表示も考慮する場合、以下のようにメディアクエリを追加しましょう。
@media (max-width: 600px) {
form {
padding: 0 20px;
}
input[type="email"], button {
font-size: 16px;
}
}
タップしやすい大きさを意識したデザインで、スマホユーザーの離脱を防ぎます。
本記事では、HTML、CSS、JavaScriptを使って、メールアドレス入力欄をユーザー目線で作り込む方法を解説しました。
<input type="email">
で基本設計これらを組み合わせることで、精度の高い、ユーザーに信頼されるフォームが完成します。ぜひあなたのWebサイトにも取り入れてみてください。