CSS 振り分け その6【SSI による振り分け】では、HTML リソースに SSI を使用して、UA 毎に CSS を振り分ける作戦だったわけですが、この方法だと対象 UA が増えた場合、全 HTML リソースの記述変更をする必要があり、大変な手間が発生します。
そこで、CSS 側で SSI を用い、補正 CSS を UA 毎に振り分ける作戦を実験してみましょう。
この方法は、【2003 年 6 月の履歴もしくは日誌 / おのひろきおんらいん】にてご指摘いただきました。この CSS 側で SSI を使用する方法だと、対象 UA が増えた場合、基本 CSS の記述を変更するだけなので、変更作業が非常にスマートになりますねぇ。感謝。
Gecko では『白地に黒』。MacIE5 では『黒地に白』、になるはずー。
NN4.x は『青地に白』、Opera は『緑地に白』。
WinIE5 は『銀地に黒』、WinIE5.5 は『灰色地に黒』、WinIE6 は『赤地に白』。
それ以外は『白地に灰色』でせう。
@charset "Shift_JIS" ;
@import url("
<!--#if expr="($HTTP_USER_AGENT = /compatible; MSIE 5/) && ($HTTP_USER_AGENT = /Mac/)" -->MacIE5.css
<!--#elif expr="($HTTP_USER_AGENT = /Gecko/)" -->Gecko.css
<!--#elif expr="($HTTP_USER_AGENT = /Mozilla\/4/) &&! ($HTTP_USER_AGENT = /compatible/)" -->nn4x.css
<!--#elif expr="($HTTP_USER_AGENT = /Opera/)" -->Opera6.css
<!--#elif expr="($HTTP_USER_AGENT = /compatible; MSIE 5.0/) && ($HTTP_USER_AGENT = /Windows/)" -->WinIE5.css
<!--#elif expr="($HTTP_USER_AGENT = /compatible; MSIE 5.5/) && ($HTTP_USER_AGENT = /Windows/)" -->WinIE55.css
<!--#elif expr="($HTTP_USER_AGENT = /compatible; MSIE 6/) && ($HTTP_USER_AGENT = /Windows/)" -->WinIE6.css
<!--#else -->kara.css<!--#endif -->
");
/* 基本スタイルだが、NN4x以外は適用されないと思ふ */
body{
background-color : teal ;
color : white ;
}
span.Gecko{
background-color : white ;
color : black ;
}
span.MacIE5{
background-color : black ;
color : white ;
}
span.nn4x{
background-color : teal ;
color : white ;
}
span.Opera{
background-color : green ;
color : white ;
}
span.WinIE5{
background-color : silver ;
color : black ;
}
span.WinIE55{
background-color : gray ;
color : black ;
}
span.WinIE6{
background-color : red ;
color : white ;
}
span.Kara{
background-color : white ;
color : gray ;
}
@charset "Shift_JIS" ;
/* MacIE5x用スタイル */
body{
background-color : black !important;
color : white !important;
}
/* なんか MaIE5 は body の color が優先されるので補正 */
span.Gecko{
color : black !important ;
}
span.MacIE5{
color : white !important ;
}
span.nn4x{
color : white !important ;
}
span.Opera{
color : white !important ;
}
span.WinIE5{
color : black !important ;
}
span.WinIE55{
color : black !important ;
}
span.WinIE6{
color : white !important ;
}
span.Kara{
color : gray !important ;
}
@charset "Shift_JIS" ;
/* Gecko 用スタイル */
body{
background-color : white !important;
color : black !important;
}
@charset "Shift_JIS" ;
/* NN4x用だが、インポートのバグで無意味 */
body{
background-color : navy !important;
color : white !important;
}
@charset "Shift_JIS" ;
/* Opera 用スタイル */
body{
background-color : green !important;
color : white !important;
}
@charset "Shift_JIS" ;
/* WinIE5 用スタイル */
body{
background-color : silver !important;
color : black !important;
}
@charset "Shift_JIS" ;
/* WinIE5.5 用スタイル */
body{
background-color : gray !important;
color : black !important;
}
@charset "Shift_JIS" ;
/* WinIE6 用スタイル */
body{
background-color : red !important;
color : white !important;
}
@charset "Shift_JIS" ;
/* その他の UA用 */
body{
background-color : white !important;
color : gray !important;
}
Xbithack full になってるから、パーミッションを 754 とかにすりゃ、CSS でも SSI が効くかと思ったら、駄目だったので、.htaccess に下記を追加。
AddType text/css .css
AddHandler server-parsed .css
いやー、サーバ移転した時に、.htaccess をバイナリでアップロードしたみたいで、さっきまで正常に動いてなかったわ。ゴメン。
2004-09-14T18:46:29+09:00 追記