gemäß dem Titel; Ist es möglich, verschachtelte Kommentare in gültigem HTML zu haben? siehe das Beispiel unten ...
<p>some text</p>
<!-- comment 1
<p>commented out html</p>
<!-- comment 2
// are nested html comment allowed?
end of comment 2 -->
<p>more commented out html</p>
end of comment 1 -->
<p>some more text</p>
Es scheint nicht, weiß jemand, wie ich verschachtelte Kommentare zum Laufen bringen kann?
html
validation
comments
QAZ
quelle
quelle
Antworten:
Wenn Sie einen Kommentar verschachteln, ersetzen Sie "-" durch "- -". Wenn Sie die Verschachtelung aufheben, kehren Sie den Vorgang um. Es ist nicht das
<!--
, was verboten ist, sondern das--
.Beispiel:
quelle
--
mit- -
der inneren (verschachtelte) Kommentar .TL; DR : Leider nein, das ist nicht möglich (und wird es auch nie sein).
Kurze Antwort:
Ein HTML-Kommentar ist nicht ganz das, was viele denken. HTML ist eine Form von SGML, bei der Kommentare durch Doppelstriche ( --… --) begrenzt werden.
Daher ist jedes Paar Doppelstriche in einem Paar spitzer Klammern mit einem Ausrufezeichen nach der öffnenden Klammer ( <! --⋯ -- >) ein Kommentar. Die Spezifikation sagt es besser als ich kann: http://www.w3.org/TR/html4/intro/sgmltut.html#h-3.2.4
Aus diesem Grund sind Kommentare wie dieser (den wir wahrscheinlich alle schon einmal gemacht haben) eine schlechte Idee:
Wahrheit: Ich bin zu faul, um Ihnen zu sagen, wie viele Kommentare durch die oben genannte Tag-Verschmutzung dargestellt werden, aber es sind mindestens 10.
Natürlich ist es nicht ganz so einfach, da sich die einzelnen Browser bei der Interpretation der Spezifikation unterscheiden.
Hier ist ein ausgezeichneter Artikel, der es erklärt:
http://weblog.200ok.com.au/2008/01/dashing-into-trouble-why-html-comments.html
Lange Antwort: Warum wir es falsch verstehen
Die meisten von uns, die mit HTML aufgewachsen sind (ohne sich mit der SGML zu befassen, die ihr zugrunde liegt), glauben, dass der String <!-- einen Kommentar beginnt und die Zeichenfolge -->einen Kommentar beendet.
Tatsächlich <!und >begrenzen Sie eine SGML-Deklaration in Ihrem HTML-Dokument, z. B. die DOCTYPE-Deklaration, die wir alle oben auf unseren Seiten gesehen haben.Innerhalb einer SGML-Deklaration werden Kommentare durch doppelte Bindestriche getrennt. Also der HTML-Kommentar
Was die meisten von uns glauben würden, dass es so analysiert wird, <!-- this is a comment -->wird tatsächlich so analysiert:
<!-- this is a comment --> . Es ist eine SGML-Deklaration, die bis auf einen Kommentar leer ist.
Da HTML eine Form von SGML ist, fungiert dieser "Kommentar innerhalb einer Deklaration" als HTML-Kommentar.
Aus Interesse ist hier ein Teil von reinem SGML, der Kommentare zeigt, die so funktionieren, wie sie in SGML beabsichtigt waren: Diese Attributlistendefinition enthält einen Kommentar in jeder Zeile:
quelle
Es kann nicht gemacht werden.
-->
beendet immer einen vorhandenen HTML-Kommentar.quelle
Wenn Sie wirklich mit einem Stück HTML stecken bleiben, das an einer unkontrollierbaren Quelle vorgerendert wurde und Kommentare enthält, und Sie sicherstellen müssen, dass nichts davon auf Ihrer Seite gerendert wird, können Sie es jederzeit mit einem
script
Tag wie unten umschließen. Das einzige ist, dass Siescript
Tags auf diese Weise nicht auskommentieren können.Wenn Sie
script
Tags auskommentieren müssen, können Sietextarea
stattdessen einen als Wrapper verwenden. Natürlich können Sietextarea
Tags nicht auskommentieren.quelle
/* */
Verwenden
template
Tag. Der schnellste Weg, um zu verhindern, dass alle Kommentare und andere HTML-Dateien angezeigt werden.quelle
<template>
Element kann nicht einfach irgendwo hinzugefügt werden. Das übergeordnete Element muss entweder das<body>
Element sein oder einige andere auswählen .Einige Editoren verfügen über Befehle zum Kommentieren / Kommentieren, mit denen vorhandene Kommentare in einem Textblock automatisch verarbeitet werden können. Visual Studio tut dies beispielsweise, wenn Sie Strg + KC und Strg + KU drücken.
quelle
Ein VS-Add-In, das verschachtelte Kommentare fälscht, indem es automatisch konvertiert
<!--...-->
und<!~~...~~>
dann den gesamten Abschnitt auskommentiert. Sie können es ein- und ausschalten.verschachtelte Kommentare
quelle
Ich denke, es ist nicht erlaubt, aber soweit ich weiß, funktioniert es in den meisten gängigen Browsern außer in Firefox.
quelle
versuche es damit
Dies ist der Beginn des Kommentars
-->
Ende der Kommentare.quelle
Versuche dies
quelle
<comment>
Schlüsselwort in HTML bekannt