HTML: комментарии
HTML-комментарий — это фрагмент разметки
<!-- текст -->, который браузер игнорирует при рендеринге, но который виден в исходном коде страницы.
Зачем нужно
Комментарии помогают структурировать разметку, временно отключать блоки кода при отладке и оставлять пояснения для других разработчиков. Важно помнить: HTML-комментарии отправляются клиенту и видны в DevTools — не помещайте в них конфиденциальную информацию.
Где используется
- Пометки «начало / конец» секций в длинных шаблонах
- Временное отключение блоков HTML при отладке
- Заметки о назначении нестандартного кода
- TODO-метки в шаблонах при разработке
- Условные комментарии (исторически — для IE, сейчас не актуальны)
Основной контент
Синтаксис
<!-- Это комментарий -->
<!-- Многострочный
комментарий -->
<div>
<!-- Комментарий внутри элемента -->
<p>Видимый текст</p>
</div>
Временное отключение кода
<!-- Временно скрыт блок рекламы -->
<!--
<aside class="ad-banner">
<img src="banner.jpg" alt="Реклама">
</aside>
-->
<main>
<p>Основной контент.</p>
</main>
Разметка секций шаблона
<!-- ======== HEADER BEGIN ======== -->
<header>
<nav>...</nav>
</header>
<!-- ======== HEADER END ======== -->
<!-- ======== MAIN CONTENT BEGIN ======== -->
<main>
<article>...</article>
</main>
<!-- ======== MAIN CONTENT END ======== -->
Что нельзя делать в комментариях
<!-- Двойные дефисы внутри запрещены в старом HTML:
<!-- вложенный комментарий --> — ошибка -->
<!-- Два дефиса подряд внутри тоже проблема:
-- это может вызвать некорректный парсинг -->
По спецификации HTML5 строка -- внутри комментария допустима, но исторически вызывала проблемы. Избегайте.
Комментарии не скрывают данные
<!-- НЕ ДЕЛАЙТЕ ТАК: -->
<!-- API ключ: sk-abc123xyz -->
<!-- Пароль базы данных: secret123 -->
<!-- Комментарии видны в DevTools → Elements и в "Просмотр кода страницы" -->
Серверные комментарии vs. HTML-комментарии
<?php /* Этот комментарий НЕ отправляется клиенту */ ?>
<!-- Этот HTML-комментарий ОТПРАВЛЯЕТСЯ клиенту -->
Если нужен невидимый клиенту комментарий — используйте серверный язык шаблонов (PHP, Jinja2, Blade и т.д.).
Частые ошибки
- Размещают чувствительные данные в комментариях — API-ключи, пароли, внутренние URL-адреса администрирования. Всё это видно в браузере.
- Вложенные комментарии —
<!-- <!-- --> -->— парсер HTML не поддерживает вложение, закроется на первом-->. - Закомментированный код остаётся в продакшн — увеличивает размер HTML. Удаляйте мёртвый код, используйте git для истории.
- Комментарии в атрибутах —
<div class="<!-- old-class -->">— не работает; комментарии допустимы только между тегами.