UAVICE UA Variable Interpretational CSS Engine UA によるCSS 書き換えエンジン 特定のOSやブラウザ、バージョンにだけ適用したいCSS を、簡単なタグを記載することで一枚のCSS だけで振り分け表示することを可能にしたPHP スクリプト。 振り分けにはブラウザのUSER AGENT が利用されます。 @author 金魚屋・J・龍角 @copyright 2008 金魚屋見聞録 @date 2008-06-24 @version 1.0.1 @url http://www.kingyoya.org/ パッケージ構成 uavice.php - スクリプトの本体 sample.css.php - CSS のサンプル README.txt - このファイル 動作環境 PHP4 or 5 1. タグによる振り分けの方法 1.1 ブラウザ別の振り分け div { width: 100%; // IE width: auto; // FF }  例えば上記のようなCSS を記述すると、IE ブラウザでは div { width: 100%; /* IE */ } のように出力され、FireFox ブラウザでは div { width: auto; /* FF */ } のように出力されます。 1.2 OS別の振り分け div { width: 100%; // WIN width: auto; // MAC }  例えば上記のようなCSS を記述すると、Windows では div { width: 100%; /* WIN */ } のように出力され、Mac では div { width: auto; /* Mac */ }  のように出力されます。 1.3 ブラウザとバージョンの振り分け  タグにはブラウザとバージョン、OS とブラウザなど、別種類のタグを同時に指定できます。 div { width: 100%; // IE 7 width: 99%; // IE 6 width: 98%; // WIN IE 6 width: 97%; // MAC IE 7 } 例えば上記のようなCSS を記述すると、Windows のIE6 では div { width: 99%; /* IE 6 */ width: 98%; /* WIN IE 6 */ } のように出力され、Mac IE 7 では div { width: 100%; /* IE 7 */ width: 97%; /* MAC IE 7 */ }  のように出力されます。 1.4 タグの種類  タグには大きく分けて3種類あります。 * OS タグ * ブラウザタグ * バージョンタグ  OSタグとブラウザタグ、ブラウザタグとバージョンタグ、といったように別種類のタグをスペースやタグで区切って同時に指定することが可能です。  指定の順番は考慮されません。  またタグの大文字・小文字は判断されません。 1.4.1 OS タグ  OS タグにはWindows, Mac, Linux の3つが存在します。  またそれぞれ別名を利用することができます。  OS とタグの対応は下記。 Windows * WIN * Windows Mac * MAC * Macintosh Linux * LIN * Linux 1.4.2 ブラウザタグ  ブラウザタグは主要な5つのブラウザに対応します。  OS タグと同様、それぞれ別名を利用することができます。  タグの対応は下記。 Internet Explorer * IE * InternetExplorer * MSIE FireFox * FF * FireFox Netscape * NN * NetScape Safari * Safari Opera * Opera 1.4.3 バージョンタグ  バージョンタグはブラウザのメジャーバージョンに対応します。  指定は整数で行います。  例えばIE6 なら 6, FireFox2 なら 2 などです。  ブラウザタグを指定せずに、バージョンタグだけを指定することも可能です。 1.4.4 タグを指定しないと  振り分けが必要ない定義では、タグを指定しないことでUSER AGENT に関わらず全てのブラウザ向けに出力されます。 1.5 利用上の注意 * タグは行単位での指定のみ可能です。 * 複数行にまたがる定義には利用できません。 * ブロックごと振り分ける機能はありません。 2. 準備 2.1 スクリプトの設置 uavice.php をどこかに設置します。 2.2 CSS の準備 振り分け表示したいCSS の拡張子を php にします。 ファイルの先頭に行を開けずに以下の記述をします。 * 1行目の は変えないでください。 * ?> の後の行から、実際のCSS を記載してください。 3 その他の機能 3.1 LINUX はMacintosh として扱う  LINUX 専用の振り分けが必要ではなく、Macintosh として扱いたい場合には下記のように指定します。  UAVICE_NOT_LINUX がLINUX 不要の場合に、代わりに使うOS を指定になります。  Windows として処理したい場合は、MAC をWIN などに書き替えます。 3.2 そのほかに利用できる指定 ※ いずれも、require './unvice.php' の記述の前に記載してください。 define('UAVICE_NOT_OPERA', 'IE');  Opera 向けの振り分けが必要にならない場合に、代わりのブラウザを指定します。上記ではIE を指定しています。IE を適宜書き替えてください。 define('UAVICE_NOT_NETSCAPE', 'FF');  Netscape 向けの振り分けが必要にならない場合に、代わりのブラウザを指定します。上記ではFireFox を指定しています。FF を適宜書き替えてください。 define('UAVICE_UNKNOWN_OS', 'WIN'); define('UAVICE_UNKNOWN_BROWSER', 'IE');  いずれもUSER AGENT からOS 、ブラウザを判別できない場合に、代わりに利用されるものを指定します。  なお、これらの指定がない場合は全てのタグが対象外になります。 define('UAVICE_FILE', __FILE__);  CSS をブラウザにキャッシュさせたい場合に指定します。  内容は書き換えずに、このまま記載してください。  この記載がない場合、CSS は基本的にキャッシュされません。 define('UAVICE_DEBUG', true);  デバッグモード。  これを指定すると、出力されるCSS の先頭に判別したUA とOS、ブラウザ、バージョンが表示されます。 4 利用上の注意 4.1 日本語環境での注意点  プログラムの性質上、Shift_JIS やSJIS-WIN をファイルの文字コードとして利用すると、文字化けを起こすことがあります。  文字化けを避けて、かつ出力をShift_JIS で行いたい場合は下記のような指定をしてください。