Frage

GEM http://www.w3.org/TR/html401/interact/forms.html#h-17.4, sollte ein Eingabeelement mit einem einzigen enden > und kein />.Obwohl die meisten Browser ein Eingabeelement verarbeiten können, das mit endet />, ist ein solches Eingabeelement nach HTML-Syntaxregeln gültig?Mit anderen Worten sind Elemente wie <input ... /> und <br /> gültig in HTML 4?

(Diese Frage bezieht sich auf HTML und nicht auf XHTML!!!)

War es hilfreich?

Lösung

Die Syntax ist gültig in einige tze aber bedeutet nicht dasselbe wie in XHTML, also benutze sie nicht.

Im HTML 4-Format <foo /> (wo bla ist der Name eines Elements, das definiert ist als LEER) bedeutet dasselbe wie <foo>> was dasselbe bedeutet wie <foo>&gt; (obwohl fast kein Browser die Syntax korrekt unterstützt, war Emacs-W3 daran gewöhnt, brach jedoch die Kompatibilität mit dem Standard zugunsten der korrekten Darstellung sogenannter HTML-kompatibler XHTML 1.0-Dokumente).

Dies gilt daher an Orten, an denen Sie eine haben können &gt; wie überall, wo Sie erlaubt sind <img> aber nicht an anderen Orten (wie einem <hr> das ist ein untergeordnetes Element des <body> (streng genommen)).

Die Interaktion mit den Regeln für optionale Start- und End-Tags sorgt für weitere Komplikationen.In einem Übergangsdokument ist dies gültig:

<link …/>
<h1>Hello, world</h1>

und bedeutet:

<link>
</head>
<body>
&gt;
<h1>Hello, world</h1>

Diese Kurzschriftsyntax könnte nützlich oder zumindest Zeitersparnis für Dinge wie:

<title/The quick brown fox/

anstelle der ausführlicheren:

<title>The quick brown fox</title>

… aber die Syntax wurde nie gut unterstützt und die Spezifikation sagt, dass es vermieden werden sollte.

Andere Tipps

Tatsächlich gelöst...laut W3C HTML 4 Validator ist es besser, diese Art des Schreibens von Elementnamen in HTML 4 nicht zu verwenden:

NET-enabling start-tag requires SHORTTAG YES
<br />
The sequence <FOO /> can be interpreted in at least two different ways, 
depending on the DOCTYPE of the document. For HTML 4.01 Strict, the '/' terminates 
the tag <FOO (with an implied '>'). However, since many browsers don't interpret it 
this way, even in the presence of an HTML 4.01 Strict DOCTYPE, it is best to avoid 
it completely in pure HTML documents and reserve its use solely for those written in XHTML.

Von der Richtlinien zur HTML-Kompatibilität:

Fügen Sie vor dem nachgestellten ein Leerzeichen ein / und > von leeren Elementen, z.B. <br />, <hr /> und <img src="karen.jpg" alt="Karen" />.Verwenden Sie auch die minimierte Tag-Syntax für leere Elemente, z. <br />, als alternative Syntax <br></br> von XML erlaubt führt in vielen vorhandenen Benutzeragenten zu unsicheren Ergebnissen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top