あんまり賢い話はしたくないけど、
というよりできないけど、
なんとなく理不尽だと思ったことが最近一つ。
cssやhtmlをちょっといじっている人には
分かる話かもしれませんが、
ブロック要素をセンタライズするやり方として
一般的なのがmarginを指定すること。
margin: 0px auto ;
とcssファイルにでも書けば要素が中央に並ぶことができます。
ですが、これだけでは一つだめなことがあります。
正確に言うと駄目なのではないのだけど、
上手くいかないということ。
どういうことかというと、ie6では上記を記述しても
センタライズされません。
どうもautoが対応していないのか
解釈が違うのか単にバグなのかのどれかみたいです。
autoはie6だけではアウトということです。あんま上手くないな。
ではどうするのかというとちゃんとした抜け道というものも
用意されていたりします。
まぁ抜け道というよりも裏技ですが。
ie6というのはhtmlのバグが結構あり、有名どころとしては
floatを指定した要素のmarginが倍になるバグなどなど。
その中のバグのひとつとしてブロック要素の位置をなぜか
text-alignで指定できるというバグがあります。ie6では
ブロック要素をセンタライズするときこのバグを逆利用します。
text-align: center;
とでも記述すればie6でもセンタライズが可能です。この流れはFF3で
脅威のスピードを出すノーチラス号はバグを逆に利用して実現したという流れに
なんとなく似ています。まぁどうでもいい話ですが。
とまぁこれでめでたしめでたしということなのだけど
自分にとってはやっぱり納得できない。
昔だったらie6が最新のバージョンだったからこれでもよかったのかもしれないけど
今はie8ともっと最新のがあるのだし、利用者がこれに合わせていけばいいんじゃないとか
思っていたり。
なのになんで作成者が旧式のブラウザにわざわざ対応させなければいけないんだー。ふがー。
大体ie6の仕様というせいで、間違ったcssを指定しなくてはいけないということにも
納得できん。それにie6だけのためにそれを記述しなくてはいけないというのも
気に入らない。
よくie6を使わないようにしようという運動もネット上でちらほら見かけるが、
上記のようなie6の性質以外にもie6のためにさまざまなweb技術の導入を
断念するということもあるらしい。
まぁようするにie6を使い続けている人がいる限り、それがwebにとって
足かせになるということ。
今日はこれまで。ie6を使っている人はie8にでもすればいいと思うよ。
ie7は知らん。
PR
[PR] 忍者ブログ // [PR]