HTTP::BrowserDetect + Template Toolkit + 動的CSS で CSS Hackless

PerlHTTP::BrowserDetect というモジュールがあるんですが、これを使うとサーバサイドでブラウザの判定ができます。

my $browser = HTTP::BrowserDetect->new($user_agent_string);
if ($browser->is_firefox) {
    ...
}

とかして使う。

CSS を静的なファイルではなく動的コンテンツとして提供してるサイトなら、このモジュールを使えば CSS Hackless でクロスブラウザなスタイリングができるよという話。TT で CSS のテンプレートを書いてるのであれば、

div#body ul {
  [% 'line-height: 120%' IF browser.is_ie %]
}

とかできて幸せ。というのを思いつきました。Catalyst::Plugin::Browser とかはこのために作られたプラグインなんだろうか。

問題は User-Agent 書き換えられてるとちゃんと動かないということですな。