実用的なHTML:フォームを愛することを学ぶ
注:以下は、WebVisions 2007カンファレンス(Aaron Gustafson作) のLearning to Love Formsレポートの要約の翻訳です。 スピーカーは、正確で効率的なXHTML / CSSコードを使用してフォームのレイアウトについて話します。- フォームは必要な悪です。 人々は非常に単純に表現することができますが、フォームを複雑にする傾向があります。
- レイアウトは、通常のXHTMLコードを作成するものと考えてください。 ただし、ブラウザとハッキングによる矛盾に備えてください。
- 複雑な形状を単純な部分に分割します。
- コードのセマンティック値を最大化するようにしてください。
- フォームの設計を複雑にしないでください。
XHTMLとCSSのトリック
- FORM要素はフォームを作成します。
- その唯一の必須属性はACTIONであり、常にURIである必要があります。
- デフォルトでは、 METHODGET設定されています。
- NAME属性は非推奨です。代わりに- ID使用してください。
- FIELDSET要素- FIELDSET関連するフォームフィールドをグループ化するために使用されます。 入れ子にすることができます。
- FIELDSETヘッダーを提供するには、- LEGEND要素を使用する必要が- FIELDSETます。
- フォーム内でPまたはDIVを使用できます。 一連のフォームフィールドを確保する場合は、OL(番号付きリスト)を使用できます。 これは、要素の順序を維持するのに役立ちます。
- INPUT要素は標準入力フィールドです。
- NAMEおよび- ID- NAMEサーバー側に使用され、- IDはクライアントに使用されます。- ID競合を避けるために、「フォーム名-フィールド名」という値を使用できます。
- TEXTAREA複数行の入力フィールド。 必須の属性は- ROWSおよび- COLSです。
- LABEL要素は、テキストと入力フィールド間のリンクを提供します。 内部通信は、- LABEL入力フィールドを入力することを意味します(対応する設計に使用できます)。 外部通信は、- LABELの- FOR属性- ID、対応する入力フィールドの- IDと等しい値を割り当てることにより実現されます。
- ボタンは、フォームイベントを処理するために使用されます。 INPUTおよびBUTTON要素が適用されます。BUTTON使用BUTTONより柔軟で、より多くの機能を提供します。
- フォントサイズを62.5%設定すると、すべてのブラウザーのフォントサイズが10ピクセルにリセットされます。
- LEGENDの表示は、ブラウザーごとに大きく異なります。 下からのインデントは正しく処理され、フィールドはほとんど無視されます。
- カーソルをポインター( pointer 、 note: input.button {cursor:hand;cursor:pointer})に設定して、ボタンの可能なアクションを示します。
- テキスト出力: label:afterを使用して、フィールド名の後にタイプを設定できます( IEは:afterサポートしていないことに注意してください )。
- ボタン: INPUTは、現在のOSのシステム要素としてデフォルトで表示されます。BUTTONは、ブロック要素として適切に表示されます。 スタイルと写真の助けを借りて、あらゆるデザインを実現できます。BUTTONは、P、ULなど、ほとんどすべての要素を含めることができます。IEでは、複数のボタンを使用する場合、それらはすべて同時にデータを送信します。 そのため、適切な処理をBUTTONには、ページ上のいくつかのBUTTONにJavaScriptが必要です。
- SELECT使用すると、1つ以上の- OPTIONを選択できます。- VALUE属性はオプションです(デフォルトでは、- OPTIONコンテンツが送信されます)。
- OPTGROUPを使用して、- OPTIONを- SELECTにグループ化できます。 インデントされたリストとして表示されます。- OPTGROUPはネストできません。
- 通常、 SELECTは、この要素に対して定義した幅よりも4ピクセル広いです。
- SELECT要素の外観を変更するには、 Select Replacementを使用できます。 背景画像を挿入することもできます(正しい操作を行うには、JavaScriptを有効にする必要があります)。
- FIELDSETは、- FIELDSETボタンまたはチェックボックスのグループを整理するのに適したソリューションです。- LEGENDを使用して、質問またはステートメントを(そのようなグループへの見出しとして)出力します。- ULリストもまともな解決策になる可能性があります。 IE6での設計には、内部ハッキングが必要です。
- IEのバグを回避するために、ラジオボタンに透明な背景色を設定します(灰色の背景色が表示されます)。
- ラジオボタンの名前を描画するには、相対位置( position:relative)と上部インデントに約2ピクセル(padding-top:2px)を使用します。
- LEGENDは- WIDTH属性を無視します。 ネストされた- SPAN要素を使用して、正しいサイズを設定できます。
- 結果をブックマークに追加できるように、メソッドの検索フォームでGETを指定することをお勧めします。
- 複数のフィールドを指す場合、 LABEL代わりにLEGENDを使用できます。
- フィールド名を左に移動して、ページからフィールド名を削除できます。 これにより、ページのアクセシビリティが向上します( 注:テキストブラウザーおよびその他のユーザーエージェントの場合 )。
- CLASS属性を使用して、フォーム要素間の関係を定義します。
- LABELは複数の入力フィールドが含まれる場合があります。
- 入力フィールドの1つがトップレベルセレクタとして使用される場合、 DDを使用してフォーム要素をグループ化できます。
- ネストされたLABELは、チェックボックスとラジオボタンに使用できます。 それらを使用して、目的の幅を設定できます。
- 必須の入力フィールド。 ABBR要素を使用して、必須フィールドにアスタリスクを指定できます。TITLE属性を通じてツールチップを使用して、フォームフィールドを説明できます。 IE6ではABBR無視されます。
- ヒント EMに投資できます。 CSSを使用すると、入力フィールドのヒントでテキストの重なりを実現できます( 注:他に理由があるのですか?データの入力も不便です )。
- エラーメッセージ。 ユーザーが気づくように、できるだけ早く外観を確認することをお勧めします。 LABEL内でSTRONGを使用できます。 メッセージは、エラーとその修正方法に関するプレーンテキストである必要があります。 また、エラーが発生した場所へのリンクが含まれている場合があります( 注:特に、おそらく、修正が必要な入力フィールドのフォーカスの翻訳をすぐに参照しています )。
- JavaScriptを使用して、エラーメッセージが修正されたら非表示にできます。
論文の翻訳をレビューしてくださった皆さんに感謝します。 コメントさせていただきます。Web Optimizator:サイトの読み込み速度の確認 Source: https://habr.com/ru/post/J31279/
All Articles