The official reason is that in HTML4 lines, FORM elements can only contain block elements, but in turn, blocking elements can contain form elements. Therefore, the structure form->block element->form input is what you need to use.
I canโt find a serious reason why this is so. It seems that the HTML authors did not want to allow forms that start on one line, then wrap to the next line and then have a submit button somewhere on the third line (which you can still achieve by overriding the form's display property if you need to. For example, this 24-way article simply states that "this is the difference between transitional and strict standards."
Another comparison (they talk about xhtml vs html, but the idea is the same):
In XHTML, elements must be encoded in a semantic manner. Tables and forms cannot be included in paragraphs, but form elements that are inline elements must be contained in a semantic element of a block level , such as a paragraph or table.
This makes me think that the FORM element is not "semantic" enough to contain other elements. This is usually not intended to label your code, it is more like a technical element that shows where to send data. Therefore, it is technically a BLOCK element, but it needs something more โsemanticโ to contain the actual input fields.
naivists
source share