Ich lese gerade folgendes bei Ссылка :
Elemente auf Blockebene (z. B.
<input>
) sind nicht direkt in<form>
-Tags bis HTML5 gültig.
Ich hatte noch nie etwas in dieser Richtung gehört, und jedes grundlegende HTML-Tutorial, das ich gesehen habe, scheint gut zu sein, wenn ich Input-Tags direkt in ein Form-Tag setze. Also meine Frage hat drei Teile:
Es ist Standards Pedantics.
<form>
gibt an, dass es nur Blockelemente oder <script>
enthalten darf. Soweit was jeder Browser in der Welt erlaubt, ist es in Ordnung. <form>
als überhaupt kein Layout-Tag betrachten und alle Inline-Elemente in einem Block-Element enthalten sollen. <div>
, <table>
, <p>
oder ein anderes blockpräsentierendes Element in <form>
platzieren. Die obige Aussage ist wahr. In HTML ist der & lt; -Eingabe & gt; Das Tag ist kein gültiges Element der & lt; Form & gt; Etikett. Um dies zu validieren, müssen Sie den & lt; input & gt; Tag mit einem & lt; fieldset & gt; oder & lt; div & gt ;. Was unten gezeigt wird.
%Vor%Zunächst möchte ich erwähnen, dass es nicht wirklich verwunderlich ist, dass HTML-Tutorials Ihnen beibringen, etwas falsch zu machen - HTML war praktisch so konzipiert, dass es jede Art und Weise akzeptiert, Dinge zu tun. Sie können Tags nicht geschlossen lassen, Sie können sie falsch verschachteln und was nicht, was einer der Gründe ist, warum ich persönlich XHTML verwende.
Diese Aussage scheint zu stimmen, aber aufgrund der Art und Weise, wie HTML gestaltet ist, spielt es in der Praxis keine Rolle. XHTML verbietet das wahrscheinlich.
Form ist eigentlich kein Container. Es sieht so aus, als ob die Entwickler der HTML-Spezifikation Dinge wie Block-Level-Elemente mögen, in die man alles hineinpacken sollte. Dies ist nur meine Sicht darauf, aber soweit ich es bemerkt habe, sollten Elemente ohne Blockebene nicht ohne einen geeigneten Container für sie verwendet werden.
Es ist genau so, dass Sie keine blockfreien Elemente in einem <blockquote>
platzieren sollten. Block-Level-Elemente sind Container für andere Elemente.
Ein div, eine Tabelle - ich denke sogar ein <p>
macht das Ding hier.
Nun, gemäß der HTML 4.01-Spezifikation (speziell Abschnitt 17.3 ) das ist technisch wahr. Allerdings kenne ich keinen Webbrowser, der Ihnen ein Problem damit bereiten könnte.