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 リアルタイム検証 自動修復設定

推薦する

ネイティブ JS カプセル化 vue タブ切り替え効果

この記事の例では、ネイティブJSカプセル化vueタブ切り替えの具体的なコードを参考までに共有していま...

vue3.0 sfcのセットアップの変更について簡単に説明します。

目次序文標準的なSFCの書き方スクリプト設定可変露出部品の取り付け小道具カスタムイベント要約する序文...

フロントエンドとバックエンド分離プロジェクトのDockerデプロイメントの実装例

目次1. 環境整備2. イメージを実行する問題を解決するRedis のインストールNginx のイン...

MySQL の char、varchar、text フィールド タイプの違い

MySQL では、char、varchar、text の各タイプのフィールドはすべて文字タイプのデー...

Linux でユーザーを完全に削除する 2 つの方法

Linux 操作実験環境: Centos7 仮想マシンまず、共通ユーザーgubeiqingを作成しま...

データベースSQL SELECTクエリの仕組み

私たちは Web 開発者として、プロの DBA ではありませんが、データベースなしではやっていけませ...

Docker に MySQL と MariaDB をインストールする方法

MySQLとMariaDBの関係MariaDB データベース管理システムは MySQL のブランチで...

Dockerオーバーレイはホスト間のコンテナ相互通信を実現します

目次1. Dockerの設定2. レジストリとネットワークを作成する3. コンテナを起動する環境説明...

MySQL 8.0.22.0 のダウンロード、インストール、設定方法のグラフィックチュートリアル

MySQL 8.0.22のダウンロード、インストール、設定方法、参考までに具体的な内容は次のとおりで...

トピックページデザインの 5 つの基本スキル (Alibaba UED Shanmu)

このトピックは、2012 年後半の社内共有です。まだ記事にはなっていませんが、春節が近づいているので...

MySQLサービスを削除する具体的な方法

MySQLは次のエラーを表示します「コントロール パネル -> 管理ツール -> サービ...

nginx + php の「入力ファイルが指定されていません」の解決策

本日、ローカル開発環境で突然「入力ファイルが指定されていません」というエラーが発生してしまいました。...

MySQL Installer Community 5.7.16 インストール詳細チュートリアル

この記事では、MySQL インストールの詳細なチュートリアルを記録し、全員と共有します。 1. バー...

MySQL 5.7.21 解凍版のインストールと設定方法のグラフィックチュートリアル

私は頻繁にシステムをインストールするので、インストールのたびにいくつかのソフトウェアを再インストール...

CSSポジショニングによる階層関係の問題の詳細な説明

絶対、相対、固定位置の位置決めabsolue: 絶対配置。上、下、左、右を使用して、配置先の親要素に...