derric.org

CSSはなぜ // でコメントアウトできないのか

| トラックバック(0)

友人のツイッターを見て気になったのでちょっと調べてみました。
(googleではスラッシュ文字を検索できないのでちょっと苦戦)

1つ、こんな発言を発見しました。
http://xhtml.com/en/css/conversation-with-css-3-team/
(ページ内を"double slash"で検索してください)

「一部のbuggyなブラウザが // をskipしてくれないので使えない...」
というような記述があります。
(現状のJavaScriptのことを言ってるんですかね。それともテストしたんでしょうか)

もともとhtmlではURLを http:// で始める仕様になっていますが、
http: は単にプロトコル宣言になるので、
ほとんどのブラウザは、URLの中身である // 以降をURLと解釈できるようになっています。
(例えば、//google.com と記述しても大抵の場合URLとして解釈されます)

おそらくこの仕様が原因で、// をskipできないケースが発生してしまうのでしょう。
(まぁ、丁寧に作ればそんなこと起きるはずもありませんが)

そう考えると、JavaScriptにしてもCSSにしても、
.htmlファイルとしてHTML内部に記述できるスクリプトは、
本来は // で始まるコメントアウトは推奨されないのかもしれません。
(たとえ専用タグで分離するとしても仕様としてリスキーなので)

ただ、JavaScriptに関しては、JavaScriptを解釈できないブラウザのために
<!----> でスクリプト部分をコメントアウトする場合に、言語仕様上、
頭の <!-- は解釈できるが末尾の --> は解釈できないという事情があり(なぜ?)、
その打開策として、行頭文字だけでその行をコメントアウトと解釈できる
// が必要だったのではないかと。(ちょっと強引か)

CSSは <!----> も解釈できるのでこの点は問題なさそうです。

PHPの場合は、そもそもサーバサイドで先にPHPとしての解釈が行われるから
おそらく関係ないでしょう。

こんな記事もあるくらいなので(かんけーないかも知れないけど)、
http://blogs.itmedia.co.jp/yasusasaki/2009/10/web-0bec.html
Webのアドレスを // で始めるのは、wwwの設計としては
1つの大きなミスだったのかもしれないですね。

トラックバック(0)

トラックバックURL: http://tech.derric.org/mt/mt/mt-tb.cgi/20

ページトップへ