Der offizielle Grund dafür ist, dass die FORM-Elemente in HTML4 streng genommen nur Block Elemente, aber Blockelemente dürfen ihrerseits Formulareingaben enthalten. Daher ist die Struktur form->block element->form input
muss verwendet werden.
Ich kann keinen ernsthaften Grund finden, warum das so ist. Es klingt so, als wollten die Autoren von HTML keine Formulare zulassen, die in einer Zeile beginnen, dann in die nächste Zeile übergehen und dann irgendwo in der dritten Zeile eine Schaltfläche zum Absenden haben (was man immer noch erreichen kann, indem man das display
Eigenschaft eines Formulars, wenn Sie es brauchen. Zum Beispiel, dieser Artikel auf 24ways stellt lediglich fest, dass es einen Unterschied zwischen Übergangs- und strengen Normen gibt".
Ein weiterer Vergleich Staaten (sie sprechen über xhtml vs. html, aber die Idee ist die gleiche):
In XHTML müssen die Elemente semantisch kodiert werden. Tabellen und Formulare können nicht Formularelemente, die Inline-Elemente sind, müssen mit Element auf Blockebene , Absatz oder eine Tabellenzelle.
Dies lässt mich vermuten, dass das Element FORM nicht "semantisch genug" ist, um andere Elemente zu enthalten. Normalerweise ist es nicht dazu gedacht, Ihren Code zu markieren, sondern eher ein technisches Element, das anzeigt, wohin die Daten gesendet werden sollen. Daher ist es technisch gesehen ein BLOCK-Element, aber es braucht etwas "semantischeres", um die eigentlichen Eingabefelder zu enthalten.