2010-03-19 9 views
23

Czy istnieje ku temu dobry powód? Kulawy, ale zastanawiałem się, czy istnieje jakiś powód.Dlaczego/**/comments działają w arkuszach stylów, ale // komentarze nie?

+0

ponieważ zapomniały, że mogą być przydatne, gdy zostały utworzone. –

+9

Dlaczego trawa nie jest fioletowa? –

+4

@micheal lub bardziej prawdopodobne, ponieważ zdali sobie sprawę, że nie było to użyteczne i wymagałoby dodania znaków specjalnych. Dwa dodatkowe znaki wymagane dla/**/nie są wielkim obciążeniem, biorąc pod uwagę elastyczność, jaką daje reszta formatu. – jball

Odpowiedz

27

Składnia komentarzy w CSS jest: /* comment here */

// nie jest prawidłową składnię. Domyślam się, że pozwala to CSS działać poprawnie po usunięciu ze znaków whitespace i new line podczas minification.

+7

+1 za wzmiankę o minifikacji – CaffGeek

+0

@Daniel To wydaje się być naprawdę dobrym powodem dla powyższej odpowiedzi @ jbail. – leeand00

+3

Poczekaj chwilę ... możesz zminimalizować Javascript i obsługuje // metodę komentowania ... * rysy głowy * .. js minifiery usuwają komentarze ... – leeand00

1

Ponieważ język CSS jest tak zdefiniowany.

2

Różne języki mają różne specyfikacje z różnymi funkcjami. W another language możesz mieć komentarze, które zaczynają się od # zamiast //.

Zobacz specification.

4.1.9 Komentarze

Komentarze zaczynają się od znaków /* i kończą znakami */. Mogą występować w dowolnym miejscu między tokenami , a ich zawartość nie ma wpływu na renderowanie w postaci . Komentarze nie mogą być zagnieżdżone.

CSS pozwala także komentarz SGML ograniczniki (<!-- i -->) w niektórych miejscach zdefiniowanych przez gramatykę, ale nie ograniczają komentarzy CSS. Są one dozwolone, aby reguły stylu pojawiające się w źródłowym dokumencie HTML (w elemencie STYLE) mogły zostać ukryte przed agentami użytkownika w wersji 3.2. Więcej informacji można znaleźć w specyfikacji HTML 4 ([HTML4]) dla .

Uwaga: Nie ma wzmianki o komentarzach rozpoczynających się od 2 ukośników i kończących się na linii podziału. Dlatego nie jest obsługiwany.

51

Ponieważ specification umożliwia/**/ale nie // :)

poważnie, CSS traktuje znaki nowej linii jak wszystkich innych spacji, a nie byłby w stanie określić koniec komentarza bez kończącym ogranicznik.

+11

+1 za wzmiankę o racjonalnym uzasadnieniu.Nigdy nie uważałem, że komentarz "//" w C++ był wyjątkiem w stosunku do "białej neutralności". – egrunin

+0

To dobra odpowiedź. – leeand00

+3

Tagalong: '//' komentarze w C poza funkcjami mogą powodować poważne komplikacje rzygania w zależności od kompilatora. –

12

Ponieważ styl /* */ jest zdefiniowany dla komentarzy w CSS.

Istnieje wiele innych sposobów, aby pisać komentarze w innych środowiskach, które nie pracują w CSS, jak:

//

<!-- -->

--

'

REM

{ }

;

#

+3

+1 za złośliwą odpowiedź;) – Nate

+2

@Nate: Po prostu próbuję poszerzyć perspektywę ... @downvoter: Jeśli nie wyjaśnisz, co ci się nie podoba, to zupełnie bezsensowne. – Guffa

+1

+1, jeden z wielu powodów, dla których uważam, że down-votes powinien być zarówno własnością *, jak i * wytłumaczony * (nie dbam * - w dużym stopniu - jeśli ktoś zignoruje moje odpowiedzi/pytania, tak długo jak dają powód do wyjaśnienia * dlaczego *). –

1

Jeśli chcesz ten styl komentarzu (i wiele innych przydatnych funkcji, które powinny być w specyfikacji CSS), spróbuj użyć LESS CSS.

+1

Powiedziałbym, że możliwość użycia '//' jako komentarza nie jest powodem do rozpoczęcia używania 'LESS CSS'. Wygląda jednak na to, że ma wiele innych przydatnych funkcji, które byłyby bardzo dobrym powodem do korzystania z niego. – awe