Menu

Комментарии в CSS: синтаксис и как закомментировать код

В CSS один синтаксис комментариев, /* ... */, и для одной строки, и для нескольких. Разберем, где можно писать комментарии, как закомментировать правило и почему // и вложенные комментарии незаметно ломают следующее правило.

На этой странице есть исполняемые редакторы: меняйте, запускайте и сразу видите результат.

Как написать комментарий в CSS

Комментарий в CSS начинается с /* и заканчивается */. Браузер игнорирует все между ними, занимает ли комментарий одну строку или двадцать.

Других вариантов нет. Отдельного однострочного комментария в CSS не существует.

Где можно писать комментарии

Комментарий можно поставить везде, где допустим пробел: между правилами, между объявлениями, после значения, внутри списка селекторов. Он одинаково работает в файле .css, в элементе <style> и в атрибуте style.

/* Buttons */
.btn,          /* default */
.btn-primary { /* variant */
  padding: 8px 14px; /* 8px top and bottom, 14px sides */
}
<p style="color: #16a34a; /* inline comments work too */">Hello</p>

HTML-комментарии, <!-- ... -->, предназначены для разметки, а не для CSS. Оба синтаксиса рядом разобраны на странице про комментарии в HTML.

Как закомментировать код

Повседневное применение комментариев: отключить объявление, чтобы увидеть, что оно делает, не удаляя его. Оберните его в /* */:

Удалите /* и */ вокруг строки с border, и появится янтарная рамка. Целое правило комментируется так же: /* перед селектором и */ после закрывающей скобки.

Большинство редакторов делают это за вас: выделите строки и нажмите Ctrl + / (Cmd + / в macOS).

Почему // ломает CSS

// похож на комментарий, потому что в JavaScript, Sass и Less это комментарий. В CSS это просто два символа, и они становятся частью того, что идет следом. Браузер видит невалидный селектор и отбрасывает все следующее правило, без сообщения об ошибке.

Браузер прочитал // this is NOT a comment .one как один селектор, невалидный, поэтому все правило .one было выброшено. Замените строку на /* this is a comment */, и зеленый фон вернется.

Комментарии не вкладываются

Комментарий заканчивается на первом */. Если обернуть код, в котором уже есть комментарий, внешний комментарий закончится раньше времени:

Чтобы закомментировать блок с комментариями внутри, сначала удалите или сократите внутренние.

Как организовать таблицу стилей комментариями

Длинные таблицы стилей легче читать с заголовками разделов. Распространенное соглашение:

/* ==========================================
   Layout
   ========================================== */

.page { max-width: 960px; margin: 0 auto; }

/* ------------------------------------------
   Header
   ------------------------------------------ */

.header { padding: 16px; }

/*! License: MIT (many minifiers keep comments that start with "!") */

Комментарии уходят каждому посетителю вместе с файлом и видны в исходном коде страницы, поэтому никогда не пишите в них пароли, внутренние URL и заметки, которые не стали бы публиковать.

Частые ошибки

  • // вместо комментария. Он незаметно удаляет следующее правило. Используйте /* */.
  • Вложенные комментарии. Первый */ завершает комментарий, остаток ломает следующее правило.
  • Забытый закрывающий */. Все после /* до конца таблицы стилей становится комментарием.
  • <!-- --> внутри CSS. Это синтаксис HTML-комментария, CSS он не комментирует.
  • Секреты в комментариях. Они попадают в браузер вместе с таблицей стилей.

Часто задаваемые вопросы

Как написать комментарий в CSS?

Оберните текст в /* и */: /* This is a comment */. Тот же синтаксис работает для одной строки и для многих, в любом месте таблицы стилей, где допустим пробел.

Можно ли использовать // для комментариев в CSS?

Нет. В CSS нет однострочного комментария. // читается как часть следующего селектора или объявления, делает его невалидным, и браузер отбрасывает все правило или объявление целиком. Sass, Less и похожие препроцессоры принимают //, а обычный CSS нет.

Можно ли вкладывать комментарии CSS?

Нет. Комментарий заканчивается на первом */, поэтому /* a /* b */ c */ заканчивается после b, а оставшийся c */ превращается в мусор, который ломает следующее правило.

Какая горячая клавиша комментирует код в CSS?

В большинстве редакторов кода, включая VS Code, Ctrl + / в Windows и Linux или Cmd + / в macOS оборачивает выделенные строки в /* */, а повторное нажатие убирает комментарий.

Влияют ли комментарии CSS на производительность?

Только тем, что добавляют байты в файл. Браузер отбрасывает их при разборе. Инструменты сборки минифицируют таблицы стилей и удаляют комментарии; многие сохраняют комментарии, начинающиеся с /*!, это соглашение для лицензионных уведомлений.

Coddy programming languages illustration

Учитесь программировать с Coddy

НАЧАТЬ