2010-03-19 5 views
23

Есть ли веская причина для этого? Хромой вопрос, но я просто подумал, есть ли причина.Почему/**/комментарии работают в таблицах стилей, но // комментарии нет?

+0

потому что они забыли, что это может быть полезно, когда они его создали. –

+9

Почему не трава фиолетовая? –

+4

@micheal или, более вероятно, потому что они поняли, что это было не так полезно, и потребовалось бы сделать новые строки специальными. Два дополнительных символа, требуемых для/** /, не являются большим бременем, учитывая гибкость, которая дает остальную часть формата. – jball

ответ

27

Синтаксис комментариев в CSS является: /* comment here */

// не является допустимым синтаксисом. Я предполагаю, что это позволяет CSS работать правильно, когда лишен whitespace и new line символов во время minification.

+7

+1 для упоминания о минифининге – CaffGeek

+0

@ Даниэль Это кажется действительно хорошей причиной для ответа @ jbail выше. – leeand00

+3

Подождите минуту, хотя ... вы можете минимизировать Javascript, и он поддерживает метод комментирования ... * scratches head * .. js minifiers удаляют комментарии ... – leeand00

1

Поскольку язык CSS определен так.

2

Различные языки имеют разные спецификации с разной функциональностью. В another language у вас могут быть комментарии, начинающиеся с # вместо //.

См. specification.

4.1.9 Комментарии

Комментарии начинаются с символов /* и заканчиваются символами */. Они могут встречаться где-то между токенами , и их содержимое не оказывает влияния на рендеринг. . Комментарии не могут быть вложенными.

CSS позволяет также комментарий SGML разделители (<!-- и -->) в определенных местах, определенных грамматикой, , но они не ограничивают комментарии CSS. Они разрешены, так что правила стиля , появляющиеся в исходном документе HTML (в элементе STYLE), могут быть скрыты от пользовательских агентов pre-HTML 3.2. См. Спецификацию HTML 4 ([HTML4]) для Дополнительная информация.

Примечание: нет упоминаний о комментариях, которые начинаются с 2 косых черт и заканчиваются при разрыве линии. Вот почему он не поддерживается.

51

Поскольку specification позволяет/** /, но не // :)

Серьезно, хотя, CSS обрабатывает переводы строк, как и все другие пробелы, и не будет в состоянии определить конец комментария без завершающего разделитель.

+11

+1 для обозначения обоснования.Я никогда не считал, что комментарий '//' в C++ был исключением из «нейтрального пробела» – egrunin

+0

Теперь это хороший ответ. – leeand00

+3

Tagalong: '//' комментарии в C за пределами функций могут привести к серьезному возрасту puke-компилятора в зависимости от вашего компилятора. –

12

Потому что /* */ - это стиль, определенный для комментариев в CSS.

Есть много других способов, чтобы написать комментарии в других средах, которые не работают в CSS, как:

//

<!-- -->

--

'

REM

{ }

;

#

+3

+1 для snarky response;) – Nate

+2

@Nate: Просто пытаюсь расширить перспективу ... @downvoter: Если вы не объясните, что вам не нравится, это совершенно бессмысленно. – Guffa

+1

+1, одна из многих причин, по которым я чувствую, что нисходящие голоса должны быть как * владельцами *, так и * объяснеными * (я не * забочусь * - так много, если кто-то отклоняет мои ответы/вопросы, пока они дают повод объяснить * почему *). –

1

Если вы хотите этот стиль комментария (и множество других полезных функций, которые должны были в спецификации CSS), попробуйте использовать LESS CSS.

+1

Я бы сказал, что возможность использовать '//' в качестве комментария не является основанием для использования 'LESS CSS'. Но похоже, что у него есть много других полезных функций, которые были бы очень вескими причинами для его использования. – awe

Смежные вопросы