クロスブラウザ・ブラウザを選ばないレイアウト


FirefoxとIEの表示の違いに悩まされてきたオレ。
解決策がまとまってきたのでこの辺でまとめ記事を。
まず、FirefoxIEに限った事ではなく、クロスブラウザという事で考えていく。
基本はXHTML1.0でまとめてありますが、HTMLでももちろん使えます。


DTDで変わるDOCUMENTスイッチ


DTDXML宣言の違いでブラウザの標準準拠モード過去互換モードのどちらかが採用される。
これによって各ブラウザ標準準拠モードを採用するのか、それとも過去互換モードを採用するすかを把握しておく。
もちろん標準準拠モードを基本にページを作っていく。


DTD標準準拠モード過去互換モードについてのエントリー&外部リンク

FirefoxとIEの表示の違いをどう解決するか?

Firefox IEの表示の違い クロスブラウザ、ブラウザ互換

Firefox IE レイアウトの崩れを無くす ウェブ標準 DTD

Google Document Disply Mode

XML宣言あり、IE6のみ過去互換モード


XHTML1.0でページを作ろうとした場合、XML宣言をしなければIE6標準準拠モードが採用されます。
でも、XML宣言はしておきたいので、IE6過去互換モードが採用されている前提で進めます。


IE6過去互換モードではボックスのwidthプロパティの解釈の違いがあります。


標準のwidthプロパティ

コンテンツの幅=widthプロパティの値

IEの過去互換モードのwidthプロパティ

コンテンツの幅+padding+border=widthプロパティの幅

ボックスモデルの図

つまり標準準拠モードの幅より、IE6の過去互換モードの幅の方が、padding+borderの分だけ小さくなってしまうわけです。
高さに関しても同じです。
これが、レイアウトが崩れる原因のひとつです。


解決策として


  • widthプロパティとpadding、borderを一緒に指定しない

  • IE6に対してCSSハックを利用する

CSSハックは最後の手段として使うつもりで、本来のCSSで何とかしたいです。


ボックスのwidthプロパティの解釈、CSSハックについてのエントリー

Firefox IE レイアウトの崩れを無くす ウェブ標準 DTD

CSS ボックスモデル

FirefoxとIEの表示の違いをCSSでなんとかする

Firefox IEの表示の違い CSSハック

IEでfloatしたボックスが下にずれてしまう


マルチカラムレイアウトで、floatさせたボックスが下にずれて2カラム、3カラムのレイアウトが崩れてしまう事があります。
これもIEのバグで、
floatさせているボックス要素にmarginpaddingを指定すると、値が2倍になってしまいます。
そのためボックスの幅が大きくなり下にずれてしまうことがあります。
右floatの右のmarginは0に、左floatの左のmarginは0にするか、paddingmarginを指定しないようにする事で回避できます。


IE6でセンタリングされない


ページの全体をセンタリングするには、コンテナボックスの左右マージンを「auto」に設定する。
ただし、IE6過去互換モードでは、このように指定してもセンタリングされないという問題があるため、body要素text-alignプロパティ「crnter」としていておく。
これだけだと、子孫要素のボックスもセンタリングされてしまうので、コンテナボックスでtext-alignプロパティ「left」を指定しなおす。


その他、backgroundで指定した画像が表示されない


IEbackgroundで指定した画像が表示されないというケースが出ています。
このブログがそうです。
Firefoxsafariではキチンと表示されていますが、IEでは6、7ともに表示されていません。
この症状の解決策は検索中です。


解決記事

Firefoxでは表示されている背景画像がIEでは表示されない
  1. posted:2007/10/31:Wed
  2. 00 : 30: 41
  3. ブラウザ
  4. Design CSS Firefox IE クロスブラウザ 悩み

  5. RSS
  6. comments : 0
  7. trackbacks : 0
  8. edit

Comments

What say you?


管理者にだけ表示を許可する

Track backs

http://digdagdig.blog117.fc2.com/tb.php/153-b180e7b0

この記事にトラックバックする(FC2ブログユーザー)

Archives

全ての記事を表示する

全ての記事を表示する

Recent comments

Recent trackbacks

ブロとも申請フォーム

この人とブロともになる

Category

Recent posts

Search this site:

Tag Clouds


Powered By FC2

Powered By FC2ブログ
ブログやるならFC2ブログ


  FC2ブログ 紹介予定派遣