Hatena::ブログ(Diary)

naoyaのはてなダイアリー

August 10, 2006

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

Perl に HTTP::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 書き換えられてるとちゃんと動かないということですな。

トラックバック - http://d.hatena.ne.jp/naoya/20060810/1155208753
Connection: close