Beides ist richtig, aber wenn man die Eingabe innerhalb der Beschriftung platziert, ist sie bei der Gestaltung mit CSS viel weniger flexibel.
Primero, a <label>
ist hinsichtlich der Elemente, die es enthalten kann, eingeschränkt . Sie können zum Beispiel nur eine <div>
zwischen den <input>
und der Beschriftungstext, wenn die <input>
befindet sich nicht innerhalb der <label>
.
Zweitens gibt es zwar Umgehungsmöglichkeiten, um die Formatierung zu vereinfachen, wie z. B. das Umschließen des inneren Beschriftungstextes mit einer Spanne, aber einige Stile werden von übergeordneten Elementen geerbt, was die Formatierung komplizierter machen kann.
3rd party edit
Nach meinem Verständnis html 5.2 Spezifikation für Label besagt, dass die Etiketten Content model
es Phrasing content
. Dies bedeutet, dass nur Tags, deren Inhaltsmodell die Formulierung von Inhalten ist <label> are allowed inside </label>
.
Inhaltsmodell Eine normative Beschreibung, welche Inhalte enthalten sein müssen als Kinder und Nachkommen des Elements enthalten sein müssen.
Die meisten Elemente, die als Phraseninhalt kategorisiert sind, können nur Elemente enthalten, die selbst als Phrasierungsinhalt kategorisiert sind, keine Flussinhalte.