19

要素 IMOの目的は、<form>表示ではなくセマンティックです。この要素は、サーバーに送信できる要素を含む領域を定義するために存在します。

では、なぜブラウザー (そして、仕様で想定している) は、ユーザー エージェント スタイルシートで display:block を指定するのでしょうか? 確かに、フォームをブロックにしたい場合は、それを div 要素でラップできますか?

通常、フォーム { display: inline } を css に入れて、これをオーバーライドします。<form>それでも、デフォルトで表示をブロックにする正当な理由があるのか​​ 、それとも従来の理由でそのように保たれているのか疑問に思っています.

4

3 に答える 3

18

これは、<form>意志に他のブロックレベルの要素が含まれていることが非常に多いためだと思います(構造用のdiv、またはフォームフィールドを整理するのに役立つテーブルなど)。また、ブロック要素を含むインライン要素を持つことは完全に可能ですが、意味的に問題があります。

表現的ではないというあなたの指摘には完全に同意します<form>が、同時に、タグが一般的にどのように使用されるかを考えると、それがブロック要素になることは理にかなっています.

于 2012-09-18T04:49:18.877 に答える
2

HTML 3.2は、<FORM>要素をブロック レベル要素として定義します。この要素に関するブラウザの現在の動作は、確かに後方互換性のためのものです。

于 2012-09-18T04:50:36.893 に答える
1

A<form>は、意味論的かつ表現的であることを意味します。これは本質的にセマンティックですが、あるフォームを別のフォームに埋め込むことも禁じられています。これは、すべてのコンテンツ(フォームコントロール、およびその他のブロック/インラインコンテンツ)の明確なコンテナーであることを意味します。さらに、インラインノードには、少なくとも仕様ではブロックレベルのノードを含めることはできません。これ<form>により、デフォルトでタグが制限されます。

于 2012-09-18T04:51:24.130 に答える