CSSには、ブラウザのバグを利用したCSSハックと呼ばれる手法が存在する。このCSSハックを使えば、使った部分がブラウザによって認識されたりされなくなったりする。つまり、この現象を利用してCSS対応度の違うそれぞれのブラウザをクライアント側で切り分けれる…そんなトリッキーなテクニックなわけ…。(バグを利用するのではなく、未対応のセレクタで切り分ける場合もある。)
例えば、html>/**/bodyってやると本来なら/**/はコメントなので読み飛ばして、html>bodyとなり、"html要素直下のbody要素の…という意味になる。が、IE7ではどういうわけかこれが認識されへん…。この場合、バグのジャンルは文法解析のミスなわけだけどCSSハック周りには同じような文法解析のミスと思われるものが結構ある。しかも、ほとんどのブラウザで…。(Gecko系は優秀だけど)
で、ここからがおいらの疑問なんだけど、何故こんなバグを作るわけ?いや、決しておいらならこんなヘボいバグは出さないぜ〜、へへへ〜って分けではない…ぶっちゃけ、おいら無勢が実装するとハックだらけになる自身がある…。つまり自分を棚に上げて思うのは、ブラウザを実装出来るようなチームがこんなバグを出すもんだろうか?という話。
と言うのも、コンピュータで使われる言語の文法解析ってのは、かなり前から手法が確立されている。中でもCSS2.1等はLALRと呼ばれる種類の言語で、まぁ解析の難しい類には入るものの定番中の定番、料理で言うとコロッケみたいなものだ…。そんなコロッケみたいなものをプロの料理人がミスるだろうか?しかも、ブラウザ内で似たように難しさの言語であるJavaScriptなんかの解析はほぼ完璧に実装されている。こちらは言うなればグラタンみたいなもんだ。そう、プロの料理人がグラタンは作れてコロッケは駄目って変な話があるかい?って事が言いたい…え…?いちいち例えが面倒臭いって…?Sorry...
テストに時間をかけてない…とか幾つか適当な理由は思いつくんだけど、、、どうにも分からない。…分からないので人のバグの原因を考る前に自分のバグを直します…って当たり前か…(爆)。



応援ポチッ!