согласно названию; возможно ли иметь вложенные комментарии в действительном HTML? см. пример ниже ...
<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>
Кажется, нет, кто-нибудь знает, как я могу заставить работать вложенные комментарии?
Ответы:
При вложении комментария замените «-» на «- -». Когда вы откладываете, повторите процедуру в обратном порядке. Не то,
<!--
что запрещено, а то--
.Пример:
<!-- some stuff <!- - some inner stuff - -> <!- - a sibling - -> the footer -->
источник
--
с- -
на внутренний (гнездовой) комментарий .TL; DR : К сожалению, нет, это невозможно (и никогда не будет).
Короткий ответ:
Комментарий HTML - это не совсем то, что многие думают. HTML - это форма SGML, в которой комментарии разделены парами двойных тире ( --… -- ).
Таким образом, любая пара двойных тире внутри пары угловых скобок с восклицательным знаком после открывающей скобки ( <! --⋯ -- >) является комментарием. В спецификации сказано лучше, чем я могу: http://www.w3.org/TR/html4/intro/sgmltut.html#h-3.2.4
Вот почему подобные комментарии (которые мы все, вероятно, когда-то делали) - плохая идея:
Правда: мне лень говорить вам, сколько комментариев представлено вышеупомянутым загрязнением тега, но это не менее 10.
Конечно, это не так просто из-за различий в том, как каждый браузер интерпретирует спецификацию.
Вот отличная статья, в которой это объясняется:
http://weblog.200ok.com.au/2008/01/dashing-into-trouble-why-html-comments.html
Длинный ответ: почему мы ошибаемся
Большинство из нас, кто вырос на HTML (не углубляясь в SGML, лежащий в его основе)), пришли к выводу, что строка <!--начинается с комментария, а строка -->заканчивается комментарием.
Собственно, <!и >разделите объявление SGML в вашем HTML-документе, например, объявление DOCTYPE, которое мы все видели в верхней части наших страниц. В объявлении SGML комментарии разделяются двойным тире. Таким образом, комментарий HTML
который большинство из нас считают , анализируется , как это <!-- this is a comment -->на самом деле разбирается , как это:
<!-- this is a comment -->. Это объявление SGML, которое пусто, за исключением комментария.
Поскольку HTML является формой SGML, этот «комментарий в объявлении» функционирует как комментарий HTML.
Ради интереса, вот кусок чистого SGML, который показывает, что комментарии функционируют так, как они были задуманы в SGML: это определение списка атрибутов содержит комментарий к каждой строке:
источник
Это невозможно.
-->
всегда будет заканчивать существующий комментарий HTML.источник
Если вы действительно застряли в каком-то фрагменте HTML, предварительно обработанном в неконтролируемом источнике, который содержит комментарии, и вам нужно убедиться, что ни один из них не отображается на вашей странице, вы всегда можете обернуть его
script
тегом, как показано ниже, Единственное, вы не можете так закомментироватьscript
теги.<p>some text</p> <!-- multiline "comment" below using script type="text/html" --> <script type="text/html"> <p>commented out html</p> <!-- comment 2 // are nested html comment allowed? end of comment 2 --> <p>more commented out html</p> </script> <p>some more text</p>
Если вам нужно закомментировать
script
теги, вы можетеtextarea
вместо этого использовать в качестве оболочки, конечно, делая это таким образом, вы не можете закомментироватьtextarea
теги.<p>some text</p> <!-- multiline "comment" below using textarea style="display:none;" --> <textarea style="display:none;"> <script> alert("which won't show up.."); </script> <p>commented out html</p> <!-- comment 2 // are nested html comment allowed? end of comment 2 --> <p>more commented out html</p> </textarea> <p>some more text</p>
источник
/* */
Используйте
template
тег. Самый быстрый способ заблокировать отображение всех комментариев и других HTML.<template> <!-- first paragraph--> Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. <!-- second paragraph--> Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. </template> <!-- third paragraph--> Ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.sunt in culpa qui officia deserunt mollit.
источник
<template>
Элемент не может просто быть добавлены в любом месте. Его родительским элементом должен быть либо<body>
элемент, либо несколько других .В некоторых редакторах есть команды комментирования / раскомментирования, которые могут автоматически обрабатывать существующие комментарии в блоке текста. Visual Studio, например, делает это, когда вы нажимаете Ctrl + KC и Ctrl + KU.
источник
Надстройка VS, которая имитирует вложенные комментарии, автоматически преобразуется
<!--...-->
в<!~~...~~>
комментарии, а затем комментирует весь этот раздел. Это позволяет вам включать и выключать его.вложенные комментарии
источник
Я думаю, что это запрещено, но, насколько я знаю, это работает в большинстве основных браузеров, кроме Firefox.
источник
попробуйте использовать это
<!--
это начало комментария
<%-- this is another comment --%> <%-- this is another one --%>
-->
конец комментариев.источник
Попробуй это
<p>some text</p> <comment> 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 </comment> <p>some more text</p>
источник
<comment>
ключевом слове в HTML