2003/06/18 (水) (無題) | ||
★ガ━━(゚Д゚;)━━━ン!!!!! ここ数年書いてきたHTMLだとIE6に対応できてない!! ほら、例のIE6テーブルセンタリング事件ですよ。 ふり的には、「Mozilla使ってるから関係ないさふふん」とか余裕かましてましたが、今日やっと気づきました。 ご丁寧にdtdの在処を示していたことが裏目に出ていたことに (; ´Д⊂ヽ 今までは、こう書いてたんですよ。 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd"> <html lang="ja"> <head> この場合、IE6では標準モード(Strict)して認識するようです。 つまり、Transitionalって書いてあるにもかかわらず、Transitionalと判断してくれない・・(?)らしい。 じゃあどうするかっていうと、 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html lang="ja"> <head> 違いはDOCTYPE宣言のとこだけですけどね。 こうすると、Transitionalと判断するためか、IE5.5と同様な表示となり、センタリングも普通です。 これは後方互換モードというそうです。 ただし、IE5.5まではバグとして、 ・table要素が、親要素のalign属性を継承していない ・table要素の親要素に中央揃えの指定がある場合、ブロック要素であるtable要素自体が中央揃えになってしまう。 #だんだんややこしくなって参りました。 例を挙げると、 <div align="center"> <table width="100%"> <tr> <td>aaa</td> </tr> </table> </div> こうしたとき、標準モードでは、セル内の文字もセンタリングされます。が、テーブル自体はセンタリングされません。左に寄ったままです。 後方互換モードでは、セル内の文字は左寄せになります。そして、テーブルはセンタリングされます。 結局面倒なのは、後方互換モードって、結局HTMLの解釈が間違ってるわけなので、これまでの常識(*1)は間違っていたと、そういうことなわけです。 *1 align="center"でテーブルをセンタリングできることと、そのテーブルのセルは左寄せがあたりまえだと思っていたこと ちなみに、margin-right:auto; margin-left:auto、そしてtext-align: center;を指定してあげれば、センタリングになるそうです。 |
||
2003/6/18 20:05 / Web技術
|