Прежде всего, я хотел бы отметить, что не удивительно, что учебники HTML учат вас делать что-то не так - HTML был практически разработан, чтобы принимать любые способы. Вы можете оставить теги незакрытыми, вкладывать их ненадлежащим образом и так далее, что является одной из причин, по которым я лично использую XHTML.
Это утверждение похоже на правду, но из-за того, как устроен HTML, на практике это не имеет значения. XHTML, вероятно, запрещает это.
Форма на самом деле не является контейнером любого вида. Кажется, создатели спецификации HTML любили такие вещи, как элементы уровня блока, в которые вы должны обернуть все, что угодно. Это только мой взгляд на это, но, насколько я заметил, элементы не блочного уровня не должны использоваться без подходящего контейнера для них.
Точно так же, как вы не должны помещать элементы не блочного уровня в <blockquote>
. Элементы уровня блока являются контейнерами для других элементов.
Див, таблица - я думаю, что даже <p>
делает здесь вещь.