フォーム表示HTMLの例と解説
出典:
以下、出典から要点抜粋
#■HTML
<form>
<div class="example">
<label for="namelabel">名前</label>
<input type="text" name="name" id="namelabel" placeholder="例)鈴木 太郎">
</div>
<div class="example">
<label for="maillabel">メールアドレス</label>
<input class="inputs" type="email" name="email" id="maillabel" placeholder="○○○.jp">
</div>
<div class="example">
<label for="ikenlabel">ご意見</label>
<textarea id="iken"></textarea>
</div>
<div class="example">
<input type="submit" value="送信する">
</div>
</form>
【解説】
・フォームは<form>〜</form>タグで挟まれ、入力フォームの内容が記載される。
・labalタグは項目とフィールドを連携させるためにある。
labelタグのforとinputタグのidを同じにすると、ラベルとインプットが連動する。
つまり、ラベルをクリックすると連動する入力欄にスコープが移動する。
・inputタグの中のnameタグは「inputフィールドが何を表しているのか」を表している。
・inputタグのtype属性で様々な種類のテキストフィールドを表示する事ができる。
・inputタグのtype属性”text”はテキストフィールドが表示される。
・inputタグのtype属性”submit”は送信ボタン。value属性にボタンに表示する文字列を入れる。
・inputタグのtype属性”email”はメールテキストフィールドが表示される。
・inputタグのplaceholder属性で入力例を表示できる。
・<textarea>〜</textarea>タグで改行可能なテキストエリアを表示できる。
長文の可能性がある情報の送信に使う。
#■CSS
@charset "UTF-8";
form {
width: 250px;
border: solid 1px black;
}
label {
display: block;
}
.example{
text-align: center;
}
【解説】
・
・label属性をブロック要素(block)にするとラベルが項目の上に表示される。
・
#■ラジオボタン
<form>
<label for="redlabel">
<input type="radio" name="color" value="red" id="redlabel">
赤
</label>
<label for="bluelabel">
<input type="radio" name="color" value="blue" id="bluelabel">
青
</label>
<label for="yellowlabel">
<input type="radio" name="color" value="yellow" id="yellowlabel">
黄
</label>
</form>
【解説】
・inputタグのtype属性”radio”でラジオボタンが表示される。
・ラジオボタンは複数選択肢から1つを選択する場合に使用する。
#■チェックボックス
<form>
<label for="redlabel">
<input type="checkbox" name="color" value="red" id="redlabel">
赤
</label>
<label for="bluelabel">
<input type="checkbox" name="color" value="blue" id="bluelabel">
青
</label>
<label for="yellowlabel">
<input type="checkbox" name="color" value="yellow" id="yellowlabel">
黄
</label>
</form>
【解説】
・inputタグのtype属性”checkbox”でチェックボックスが表示される。
・チェックボックスは複数選択の中から「複数選択可」の場合に使用する。
#■ファイルのアップロード
<form>
<input type="file" name="sample" accept="image/jpeg, image/png, image/gif" multiple>
</form>
【解説】
・inputタグのtype属性”file”で画像などのファイルのアップロードボタンを設置できる。
・mulitiple属性を指定すると、複数ファイル選択可能になる。
・accept属性では選択可能なファイルの形式を指定する。
#■スライダー入力
<form>
小
<input type="range" name="slider" min="1" max="10">
大
</form>
【解説】
・inputタグのtype属性”range”でレンジ入力(スライダー入力)を設置できる。
・min.max属性により選択可能範囲を決め、大きさなど大体の値をユーザーが選択できる。
#■半角数値入力
<form>
<input type="number" name="sample">
</form>
【解説】
・inputタグのtype属性”number”で半角数字のみ入力できるテキストフィールドを設置できる。
#■URL入力
<form>
<input type="url" name="sample">
<button type="submit">送信</button>
</form>
【解説】
・inputタグのtype属性”url”でURL入力欄を設置できる。
・見た目は「type=”text”」と同じだが、、URL形式以外の入力に対してブラウザが注意を表示する。
#■パスワード入力
<form>
<input type="password">
<button type="submit">送信</button>
</form>
【解説】
・inputタグのtype属性"password"でパスワード入力欄を設置できる。
・入力したテキストは「●●●」で隠される。
#■電話番号入力
<form>
<input type="tel" name="sample">
<button type="submit">送信</button>
</form>
【解説】
・inputタグのtype属性”tel”で電話番号の入力欄を設置できる。
・フォーカスが当たったとき、数字入力のキーボードを表示してくれる。
#■日付入力
<form>
<input type="date" name="sample">
<button type="submit">送信</button>
</form>
【解説】
・inputタグのtype属性"date"で日付入力欄を設置できる。
・「年」「月」「日」の3種類を入力するフィールドとなる。
#■時刻入力
<form>
<input type="time" name="sample">
<button type="submit">登録</button>
</form>
【解説】
・inputタグのtype属性”time”で時刻記入欄を作成できる。
#■検索フォーム入力
<input type="search" list="list">
<datalist id="list">
<option value="red">
<option value="blue">
<option value="yellow">
<option value="green">
</datalist>
<input type="submit" value="検索">
【解説】
・inputタグのtype属性”search”で検索入力フォームを作成できる。
・list属性とdatalistを組合せることで、入力項目の候補を表示する事ができる。
#■リセットボタン
#HTML
<form>
<label for="labelname">お名前:<input type="text" name="name" id="labelname"></label>
<label for="labelmail">メール:<input type="mail" name="name" id="labelmail"></label>
<input type="reset" value="リセットする">
</form>
#CSS
label {
display: block;
}
【解説】
・inputタグのtype属性”reset”」でリセットボタンを作成できる。
・ボタンを押すと入力された全ての内容がリセットされる。
#■色の選択
<form>
<label>色を選択
<input type="color" name="sample_color">
</label>
</form>
【解説】
・inputタグのtype属性”color”でカラーピッカーから色を選択できる入力欄を作成できる。
#■表示しないデータ
<form>
<label>
<input type="hidden" value="隠しデータ">
</label>
</form>
【解説】
・inputタグのtype属性”hidden”は隠しデータで、ブラウザに表示されない。
ユーザーに知られずにサーバーに送る情報がある時に使用する。
#■実用的なフォームの例
#HTML
<form>
<p class="label-title">お問い合わせフォーム</p>
<div class="form-sample">
<p class="form-label"><span class="form-require">必須</span>氏名</p>
<input type="text" class="form-input" placeholder="例)鈴木一郎">
</div>
<div class="form-radio">
<p class="form-label"><span class="form-require">必須</span>ご職業</p>
<div class="radio-label">
<label>
<input type="radio" name="job" value="officeworker">
会社員
</label>
<label>
<input type="radio" name="job" value="student">
学生
</label>
<label>
<input type="radio" name="job" value="housewife">
主婦
</label>
<label for="sonota">
<input type="radio" name="job" value="other">
その他
</label>
</div>
</div>
<div class="form-sample">
<p class="form-label"><span class="form-require">必須</span>電話番号</p>
<input type="text" class="form-input" placeholder="例)123-4567-8910">
</div>
<div class="form-sample">
<p class="form-label"><span class="form-require">必須</span>メールアドレス</p>
<input type="email" class="form-input" placeholder="例)sample@gmail.com">
</div>
<div class="form-sample">
<p class="form-label last"><span class="form-require">必須</span>お問い合わせ内容</p>
<textarea class="form-textarea"></textarea>
</div>
<input type="submit" class="form-Btn" value="送信する">
</form>
</form>
#CSS
.label-title {
font-size: 40px;
text-align: center;
border: solid 3px #340beb;
border-radius: 6px;
background: #340beb;
color: #fff;
}
form {
margin-left: auto;
margin-right: auto;
max-width: 720px;
}
.radioinput {
text-align: center;
}
.form-sample {
width: 100%;
display: flex;
align-items: center;
padding-left: 14px;
padding-right: 14px;
padding-bottom: 15px;
}
.form-radio {
display: flex;
width: 100%;
display: flex;
align-items: center;
padding-left: 14px;
padding-right: 14px;
padding-bottom: 15px;
}
.radio-label {
width: 100%;
max-width: 500px;
margin-left: 20px;
font-size: 18px;
}
.form-label {
width: 100%;
max-width: 248px;
font-weight: bold;
font-size: 19px;
}
.form-label.last {
margin-top: 10px;
margin-bottom: auto;
}
.form-require {
border-radius: 5px;
margin-right: 10px;
padding-top: 10px;
padding-bottom: 10px;
width: 55px;
display: inline-block;
text-align: center;
background: #340beb;
color: #fff;
font-size: 15px;
}
.form-input {
border: 1px solid gray;
border-radius: 5px;
margin-left: 40px;
padding-left: 10px;
height: 50px;
width: 100%;
max-width: 410px;
font-size: 18px;
}
.form-textarea {
border: 1px solid gray;
border-radius: 6px;
margin-left: 40px;
padding-left: 1em;
padding-right: 1em;
height: 216px;
flex: 1;
width: 100%;
max-width: 410px;
font-size: 18px;
}
.form-Btn {
border-radius: 6px;
margin-top: 32px;
margin-left: auto;
margin-right: auto;
padding-top: 20px;
padding-bottom: 20px;
width: 280px;
display: block;
letter-spacing: 0.05em;
background: #340beb;
color: #fff;
font-weight: bold;
font-size: 20px;
}
【解説】(出典のまま)
[HTML]ポイント
①お問い合わせフォームは、<form>〜</form>の中に記載します。
②2行目にタイトルをつけました、タイトルを作成することにより、このフォームは「お問い合わせフォームなのか」「予約フォームなのか」なんのフォームなのかをユーザーにわかりやすくする事ができます。
③type属性を確認していきます。
表示結果、1行目は「氏名」を入力するテキストを作成しているので→「type=”text”」2行目は「職業」を入力するラジオボタンを作成しているので→「type=”radio”」3行目は「電話番号」を入力するテキストを作成しているので→「type=”number”」4行目は「メールアドレス」を入力するテキストを作成しているので→「type=”mail” 」5行目は「お問い合わせ内容」を入力するテキストエリアを作成しているので→type属性ではなく<textarea>〜</textarea>属性で表示します。
④フォームに「送信ボタン」はつきもの。「type=”submit”」でボタンを作成し、「value=”〇〇”」の〇〇にボタンに表示したい文字を記入
[CSSポイント]
①「.label-titleクラス」でフォームタイトルを装飾しています。
タイトルのfont-size,colorなどはこちらから変更して下さい。
②「.form-radioクラス」にdisplay: flexを指定し、子要素の「.form-labelクラス」「.radio-label」を横並びにする事で「必須・氏名・テキストフィールド」を横並びにしています。
③pタグの中に、spanタグを入れ「必須マーク」を作成しています。
④「.form-inputクラス」でテキストフィールドの大きさ枠線を指定しています。border: 1px solid gray;の指定によりテキストフィールドに枠線を表示する事ができ、よりわかりやすいフォームにする事ができます。
【総まとめ】(出典のまま)
1.フォームを作成するには、formタグを使用し、<form>〜</form>の間に記述する。
2.labelのfor属性とinputのid属性を連動させ項目とフォームを連動させる。
3.inputのtype属性を変更する事で様々なタイプのテキストフィールドを表示させる事ができる。
「type=”text”」→テキストフィールド
「type=”radio”」→ラジオボタン
「type=”checkbox”」→チェックボックス
「type=”file”」→ファイルアップロード
「type=”range”」→レンジ入力
「type=”number”」→半角数字入力
「type=”url”」→url入力
「type=”password”」→パスワード入力
「type=”tel”」→電話番号入力
「type=”date”」→日付入力
「type=”time”」→時刻入力
「type=”search”」→検索入力
「type=”reset”」→リセットボタン
「type=”color”」→色の入力
「type=”hidden”」→隠しデータ