互換モード(Quirks モード) 時 の box モデルを扱いやすくするための CSS | ヨモツネット text ja 2009-04-15 http://www.yomotsu.net/wp/?p=515 CSS, Web

互換モード(Quirks モード) 時 の box モデルを扱いやすくするための CSS

古いWebサイトの場合、システムやガイドラインの都合で、互換モード時 (Quirks モード) で構築しなければいけない場合があります。

互換モード (Quirks モード) 時は Opera 7, 8 の DOCTYPE スイッチ にあるように、標準モードと異なる解釈がされますが特にレイアウトに影響を及ぼす、width に padding や border を含めるか否かの違いに苦戦することが多いはずです。

スクリーンショット : 互換モード時、IE は width に padding を含める。Firefox は含めない互換モード時、IE では強制で border-box (width に padding や border を含める) の解釈になりますが、Firefox などでは content-box (width に padding やborder を含めない)で解釈されます。

スクリーンショット : box-sizing プロパティーを使うと Firefox も IE の互換モードと同じ表示にすることができるそこで、Firefox などの boxモデルの解釈を IE に合わせて、 box モデルの解釈のされ方を border-box に統一します。

次のような CSS のコードを追記することで、実現が可能です。

*{
-moz-box-sizing: border-box;
-webkit-box-sizing: border-box;
-ms-box-sizing: border-box;
box-sizing: border-box;
}

合わせて IE で table 内に font 関連のプロパティーが継承されない問題の対策も追記しておくと、さらに扱いやすくなります。

table{
font-size:100%;
}

*{
-moz-box-sizing: border-box;
-webkit-box-sizing: border-box;
-ms-box-sizing: border-box;
box-sizing: border-box;
}


トラックバックURI

http://www.yomotsu.net/wp/wp-trackback.php?p=515

コメント

ccoさんからのコメント

2009年4月17日 9:30

はじめまして。 いつもこのブログを楽しく拝見させてもらっています。 上記の記述だと、IE7では対応してないみたいですね。 IETESTERや、standaloneで見たので、正規版でどうかはわかりかねますが・・・ 一応ご報告まで。
adminさんからのコメント

2009年4月17日 10:48

@cco さま : はじめまして。お読みくださいましてありがとうございます。 ご指摘の通り、IE で -ms-box-sizing がサポートされたのは 8 からですので、6, 7 での標準モード (standard モード) 時は機能しません。ただ、IE 7 以前は、互換モード(Quirks モード) 時に強制で box-sizing: border-box; の状態になってしまうので、互換モード前提で Web ページを構築する場合にのみ役立つ小技かなと考えています。 検証までしていただきありがとうございました。今後ともよろしくおねがいします !!
創るmetaboyさんからのコメント

2009年11月19日 11:21

互換モード:さて、「互換モード」とはなんぞや。正確に理解できているのか?対応はどうなのか?少し調べてみる ・・・ 【ブラウザ】  実は先日、  ・(管理している)ある顧客サイトで   ・IEにおいて、互換モードがからむ不具合が    見つかった。    (要は、互…

コメントフォーム

コメント

コメントでは一部の XHTML タグを使用できます。 : <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

カテゴリー一覧

この Weblog の FEED

この Weblog の FEED