tetsunosukeのnotebook

tetsunosukeのメモです

[PHP]いい加減CSS ハック?ブラウザハック?とやらをやめてくれないか。

特に、バグを突いているだけ、とか、ほんと嫌。

良く見る、こういうのとか

<!--[if IE 5.5000]>
<link rel="stylesheet" href="stylesheets/ie55.css" type="text/css" media="screen" />
<![endif]-->
<!--[if IE 6]>
<link rel="stylesheet" href="stylesheets/ie6.css" type="text/css" media="screen" />
<![endif]--> 
Mac IE5はUTF-8の文字コードのCSSファイルは読むけどUTF-16は読まない

とか

この辺の「CSSハック」的な話を聞くとなーんか無性に腹が立つ。一つ一つのHTMLドキュメントがどんどん肥大化するじゃないか。もちろん、それをしないとUSER_AGENTごとに見た目が変わるから、デザイナー*1サイドとしては1pxのズレも許したくない、というのはわかる。

CSSが出てくる前は、NN用とか、IE用とかページを分けていた人もいた。もちろんそんなんでは効率は格段に落ちてしまうだろうから、スタイルを分岐させるというニーズは当然のことだと思う。

でもそれってできる限りクライアント側にさせるような話ではないと思うんですよね。だから以前紹介したように*2サーバ側でUSER_AGENTを判定してなんらかのアクションを取るべきだと思う。

サーバサイドでは何かしらの処理系が使えない、Apacheの設定でもどうにもできない、という場合があるのかもしれないけど、少なくともそれは「商用でサービスを提供する」というレベルにおいては必須くらいの勢いにしてほしいと思う。どうせCSSは対象とするUA分だけ用意するんだから、そのくらいはたいした手間じゃないと思うんだけどな・・・。

モバイルに対しては別のHTMLなどで表示・・・

XHTMLに対応していないモバイル端末とかがあると思うのですが、これに対しても、割と同様の発想で対応できれば望ましいなと思うのです。

たとえばもとのドキュメントはXHTMLで記述しておけば、サーバサイドでXSLTをかけて、HDMLとか、端末の望む形でドキュメントを出力してあげられるんじゃないかなぁと思うんですよね。

こうなってくるとマークアップエンジニアがいかにしてもとの文書をきちんと書いていくかっていうのが結構肝になってくるかなあと思います。

*1:というかここでは若干「紙モノ」に近いイメージ

*2:http://d.hatena.ne.jp/kidd-number5/20060116/1137379206