MacIE5 を救済しつつ NN4.x にスッピンの刑
表題の CSS 制御技法について、表具師かっぱさんが日記「脱 三日坊主 宣言!」で詳説してくださいました。
suさんも「MacIEのためのCSSコメントにおけるバックスラッシュ・ハックについて」をまとめてくださいました。期限付きリソースに付き、引用許可のある箇所を丸ごと引用させていただきます(ファイルを復活させてくださいました)。
書き方
hoppeさんのべた日記(はてな)におけるNN 4.x すっぴんの刑から MacIE5 を回避を参照。そこで記述されている通りにすれば、問題はないはず。なお、確認したいがMacはないという方は、御連絡いただければ、こちらで確認いたします。
原理
以下のリソースで紹介されている通り。
- Commented Backslash MacIE5 CSS Hack - v2(考案者によるリソース。英文)
- Mac版 Internet Explorer 5 の CSS バグと回避方法(Apple Developer Connection - Working with CSS - CSS Hints for Internet Explorer 5 の日本語訳。「コメント内のバックスラッシュでハック」の項を参照)
ただし、上に紹介したリソースでは主に上書きについて述べているので、分かりにくいかもしれない。以下、手短に補っておく。
/*\*/@ media hoge {/**/
とある場合、正常なUAでは最初の「
/*\*/
」と最後の「/**/
」をコメントとして解釈する。ところが、MacIEではバックスラッシュの付いた文字をエスケープしてしまう(MacIEのバグによる)ので、「\*
」をエスケープする。すると先頭の「/*
」から末尾の「*/
」までつまり全体をコメントとして解釈することとなる。「/*\*/}/**/
」の箇所も同様。/*\*/@media hoge {/**/ =====MacIEに読み込ませたいが、N4には読み込ませたくないスタイル==== /*\*/}/**/
とあれば、Netscape4では
@media hoge { =====MacIEに読み込ませたいが、N4には読み込ませたくないスタイル==== }
と処理され、MacIEでは
/*@media hoge {*/ =====MacIEに読み込ませたいが、N4には読み込ませたくないスタイル==== /*}*/
と処理されることになる。
謝辞
以下の方々に感謝の意を表します
- sam@sam-i-am.com氏(Backslash hackの考案者)
- twt@s15.xrea.com氏(Mac版 Internet Explorer 5 の CSS バグと回避方法の翻訳者)
- oioi氏(Backslash hackを@mediaに応用する方法の提案者)
- hoppe氏(この手法をまとめて下さった方)
- 犬神氏をはじめとするN4とMacIEに御配慮下さる製作者の方々
どちらも私でも大丈夫なぐらいすばらしくわかりやすいです。ありがとうございました。
いちおう はてなダイアリーTips とか書くだけ書いていておこう。