HTML マークアップ言語 - フォーム

HTML マークアップ言語 - フォーム
123WORDPRESS.COM HTML チュートリアル セクションに戻るには、ここをクリックしてください。
前:マークアップ言語 - 引用<br />元のソース チャプター 5 フォームのインタラクションは常にインターネットの焦点であり、ユーザーと Web サイトが情報を交換し、互いに通信できるようにします。フォームを使用すると、ユーザーから情報を整理された一貫した方法で収集できるため、Web サイトを設計するときには、フォームは常に「あらゆる状況で使用できる」カテゴリに分類されます。たとえば、フォームをマークアップする方法は約 10,000 種類あることがわかりました。それほど多くはないかもしれませんが、フォーム構造をユーザーが使いやすく、Web サイトの所有者が管理しやすいものにする状況はいくつか考えられます。フォームをマークする方法 方法 A: テーブルを使用する

<form action="/path/to/script" method="post">
<テーブル>
<tr>
<th>名前:</th>
<td><input type="text" name="名前" /></td>
</tr>
<tr>
<th>メールアドレス:</th>
<td><input type="text" name="メール" /></td>
</tr>
<tr>
<th>&nbsp;</th>
<td><input type="submit" value="submit" /></td>
</tr>
</テーブル>
</フォーム>

多くの人が長い間、フォームをマークアップするためにテーブルを使用してきました。使用頻度が高いため、左の列に右揃えのテキスト説明、右の列に左揃えのフォーム要素というようにフォームがレイア​​ウトされることに慣れています。シンプルな 2 列のテーブルを使用することは、使いやすいフォーム レイアウトを完成させる簡単な方法の 1 つです。
テーブルは不要だと考える人もいれば、フォームは表形式のデータとして扱うべきだと考える人もいます。どちらの考え方もサポートするつもりはありませんが、場合によっては、テーブルを使用することが、特定のフォーム レイアウトを実現する最善の方法です。特に、多くの異なる要素を含む複雑なフォーム (ラジオ ボタン、ドロップダウン ボックスなどを使用するフォーム) の場合です。このようなフォームのレイアウトを CSS だけで処理するのは面倒な作業になる可能性があり、多くの場合、余分な <span> タグや <div> タグを追加する必要があります。これにより、テーブルよりも多くのマークアップが消費されます。
次に、図 5-1 を見てください。これは、一般的な視覚的なブラウザ表示における方法 A の効果を示しています。

図 5-1: ブラウザに表示される方法 A の効果 テーブルを使用すると、テキスト記述フォーム要素を非常にきれいに配置できることがわかります。ただし、このような単純なフォームの場合は、テーブルの使用を避け、それほど多くのタグを必要としない他の方法を使用する場合があります。フォームの視覚的なデザインでこのタイプのレイアウトが必要でない限り、テーブルを使用する必要はありません。同時に、いくつかのユーザビリティの問題も考慮する必要があります。これについては、次の 2 つの方法を検討する際に触れます。
方法B: テーブルは必要なく、ただ押し合うだけ

<form action="/path/to/script" method="post">
<p>
名前: <input type="text" name="name" /><br />
メールアドレス: <input type="text" name="email" /><br />
<input type="submit" value="submit" />
</p>
</フォーム>

1 つの段落と複数の <br /> タグを使用してすべての要素を区切るのは実行可能な方法ですが、見た目が少し混雑する可能性があります。図 5-2 は、ブラウザーの 11 番目のバージョンでの効果を示しています。

図 5-2: ブラウザに方法 B の効果が表示されます。テーブルなしでレイアウトを完成させることはできますが、少し混雑して見栄えが悪くなります。同時に、フォーム要素を完全に揃えることができないという問題も発生します。
CSS を使用して <input> 要素に外側のパッチを追加し、混雑感を軽減できます。次のようになります。

入力{
マージン:6px 0;
}

前のセクションでは、各 <input> 要素 (名前、メール アドレスの入力ボックス、送信ボタンを含む) の上部と下部に 6 ピクセルの外側のパッチを追加し、要素間に余分なスペースを追加しました。図 5-3 のようになります。

図 5-3. 入力要素に外部パッチを追加した後のメソッド B。メソッド B 自体は問題ありませんが、微調整することでフォームをより良くすることができます。メソッド C でもこれらの微調整テクニックが使用されているので、見てみましょう。
方法C: シンプルで使いやすい

<form action="/path/to/script" id="thisform" method="post">
<p><label for="name">名前:</label><br />
<input type="text" id="name" name="名前" /></p>
<p><label for="email">メールアドレス:</label><br />
<input type="text" id="email" name="email" /></p>
<p><input type="submit" value="submit" /></p>
</フォーム>

方法 C には、いくつか気に入っている点があります。まず、このような単純なフォームでは、各説明とフォーム要素をそれぞれ独自の段落に配置するのが便利だと思います。段落間の事前設定された距離は、スタイル設定なしで表示したときにコンテンツを読みやすくするのに十分です。また、後で CSS を使用して、フォーム内に含まれる <p> タグの間隔を設定します。
さらに一歩進んで、フォームに固有の id="thisform" を与えました。つまり、先ほど述べた正確な間隔は、おおよそ次のように記述できます。

#thisform p{
マージン:6px 0;
}

これは、このフォーム内の <p> タグの上部と下部のパディングを 6 ピクセルに設定し、通常の段落のブラウザのデフォルトを上書きすることを意味します。
方法 C と前の 2 つの方法のもう 1 つの違いは、各グループ (説明と入力ボックス) が <p> 内に配置されているにもかかわらず、<br /> を使用して別の行に配置することです。<br /> を使用して各要素を区切ると、テキストの長さが異なるために入力項目が完全に揃わないという問題を回避できます。
図 5-4 は、<p> タグに以前に設定したスタイルを使用して、一般的なブラウザで方法 C の効果を示しています。

図5-4. ブラウザはPタグにCSSを使用した方法Cの効果を表示します
方法 C の視覚的な効果に加えて、最も重要な利点は使いやすさの向上です。
<label> タグ <label> タグを使用してフォームの使いやすさを向上させるには 2 つの手順が必要ですが、方法 C では両方の手順が完了しています。1 つ目は、<label> タグを使用して、テキストの説明を、テキスト フィールド、テキスト領域、ラジオ ボタン、チェック ボックスなどの関連するフォーム要素に接続することです。方法 C では、"Name:" および "Email:" タイトルの <label> タグを使用して、それらをデータ入力要素に接続します。
2 番目のステップは、<label> タグに for 属性を追加し、対応する入力ボックスの ID を入力することです。
たとえば、方法 C では、「Name:」を <label> タグで囲み、その背後にある入力ボックス ID と同じ値を for 属性に入力します。

<form action="/path/to/script" id="thisform" method="post">
<p><label for="name">名前:</label> <br />
<input type="text" id="name" name="名前" /></p>
<p><label for="email">メールアドレス:</label><br />
<input type="text" id="email" name="email" /></p>
<p><input type="submit" value="submit" /></p>
</フォーム>
<label> を使用する理由は何ですか?
フォーム内で <label> タグを使用する必要があるという意見を聞いたことがあるかもしれません。最も重要な質問は、なぜ<label> タグを使用する必要があるのか​​ということです。
ラベル/ID の関連付けを確立すると、レイアウト方法に関係なく、スクリーン リーダーが各フォーム要素の正しいラベルを読み取ることができるようになり、これは良いことです。同時に、<label> タグはフォーム フィールド ラベルをマークするように設計されています。このタグを使用すると、各要素の意味を説明し、フォームの構造を強化しています。
単一選択ボックスおよび複数選択ボックスを扱うときに <label> タグを使用することのもう 1 つの利点は、ユーザーが <label> 内のテキストをクリックすると、ほとんどのブラウザーで要素の値も変更されることです。これにより、入力要素のクリック可能な領域が大きくなり、運動能力が制限されているユーザーがフォームに入力しやすくなります (Mark Pilgrim、「Dive Into Accessibility」、 http://diveintoaccessibility.org/day_28_labeling_form_elements.html )。
たとえば、ユーザーが「この情報を書き留める」ことを選択できるように、フォームに複数選択ボックスを追加する場合、次のように <label> タグを使用できます。

<form action="/path/to/script" id="thisform" method="post">
<p><label for="name">名前:</label><br />
<input type="text" id="name" name="名前" /></p>
<p><label for="email">メールアドレス:</label><br />
<input type="text" id="email" name="email" /></p>
<p><input type="checkbox" id="remember" name="remember" />
<label for="remember">この情報を覚えていますか?</label></p>
<p><input type="submit" value="submit" /></p>
</フォーム>

このようにチェックボックスをマークすると、スクリーン リーダーが正しい説明テキストを読み上げる (この例のように、テキストが入力ボックスの後に表示される場合でも機能します) ことと、チェックボックスの切り替え範囲が拡大され、チェックボックス自体に加えてテキストも含まれるようになる (ほとんどのブラウザーでサポートされています) という 2 つの利点があります。
図 5-5 は、このフォームがブラウザでどのように表示されるかを示しています。複数選択ボックスの拡大範囲を具体的にマークします。

図 5-5. トグル範囲にテキストを含むチェックボックス。フォームと段落に加えて、定義リストを使用してフォームをマークアップする別の方法も示します。
前のページ1 2 3 4 次のページ 全文を読む

<<:  Docker イメージのプルとタグ操作 pull | tag

>>:  vue フロントエンド HbuliderEslint リアルタイム検証 自動修復設定

推薦する

MySQL でのフィルター条件なしのカウントの詳細な説明

カウント(*)成し遂げる1. MyISAM: テーブル内の行の総数をディスク上に保存し、フィルタリン...

MySQLのインデックス選択と最適化の詳細な説明

目次インデックスモデルB+ツリーインデックスの選択インデックスの最適化インデックスの選択性カバーイン...

React 関数コンポーネントのパフォーマンス最適化のアイデアの詳細な説明

最適化のアイデア最適化には主に 2 つの方向があります。再レンダリングの回数を減らします。 Reac...

JavaScript による省・市連携効果の実現

この記事では、省と都市間の連携効果を実現するためのJavaScriptの具体的なコードを参考までに共...

MySQL 5.7.17 winx64 無料インストールバージョン設定方法グラフィックチュートリアル

mysql5.7.17無料インストールバージョンのインストールに関する最近の経験1.ダウンロードして...

シャドウソックスを使用してLAN透過ゲートウェイを構築する

目次dnsmasq をインストールして設定するChinaDNS をインストールして設定するshado...

docker-compose でデプロイしたときに MySQL にアクセスできなくなる問題の簡単な分析

Docker-ComposeとはCompose プロジェクトは、以前の fig プロジェクトから派生...

Vueリスナーの使用例の詳細な説明

1つ目はjQueryのajaxを使用してリクエストを送信することです ユーザーが登録するときに、リス...

Linux でハードディスクのサイズを確認し、ハードディスクをマウントする方法

Linux には、マウントされたハードディスクとマウントされていないハードディスクの 2 種類のハー...

MySQL でのサブクエリの基本的な使用法

目次1. サブクエリの定義2. サブクエリの分類1. スカラーサブクエリ: 2. MySQLサブクエ...

TomcatはNginxリバースプロキシのクライアントドメイン名を取得します

質問Nginx リバース プロキシの後、Tomcat アプリケーションは、クライアント ブラウザーの...

グループフィールドを 1 行に書き込むための mysql group_concat メソッドの例

この記事では、MySQL group_concat を使用してグループ化されたフィールドを 1 つの...

Vue要素ツリーコントロールに点線を追加する詳細な説明

目次1. 成果を達成する2. 実装コード3. その他の実装要約する1. 成果を達成する 2. 実装コ...

Linux での stat 関数と stat コマンドの使用法の詳細な説明

stat 関数と stat コマンドLinux ファイル内の [inode = インデックス ノード...