<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta http-equiv="Content-Style-Type" content="text/css">
<meta http-equiv="Content-Script-Type" content="text/javascript">
<title>IE6のwidth解釈のバグ対策</title>
<link rel="stylesheet" href="../nobitastyle.css" type="text/css">
</head>
<body>
<div id="layout">
<div id="container">

<div id="header">
<!--#include virtual="/ssi/head.html"-->
</div>
<p class="pan">
<a href="../index.html">内職！節約副収入生活</a>　&gt;　
<a href="../affiliate/index.html">「アフィリエイト」編</a>　&gt;　
IE6のwidth解釈のバグ対策
</p>

<div id="main">

<h1 class="title">IE6のwidth解釈のバグ対策</h1>
<p class="pankuzu">油断すると２カラムとか３カラムが他のブラウザでは崩れてます・・・。</p>

<P><SPAN class="akamoji">※この記事は2005年にこのサイトを制作した当時の記事ですので、現在の状況とかなり異なっている場合があります。記事自体は残しておきますが、IE6を使っている人はもういないですね。。。</SPAN></P>


<H2 class="titlecolor">スタイルシートレイアウトで表示が崩れないようにする</H2>

<P>せっかくテーブルレイアウトから、スタイルシートレイアウトへ移行しても、
ＩＥ以外のブラウザ（MozillaやOperaやNetscape）で２カラム（２段組）や３カラム（３段組）が崩れていると
ちょっと凹むと思います。</P>
<P>（・・・でも、使ってる人多くないし・・・ゴニョゴニョ）</P>
<P>・・・・・・・・気を取り直して進みます。</P>
<P>解決策はたったコレだけです。</P>

<p class="akamoji">「width」と「padding・border」を一緒に指定しない</p>

<P>つまり、レイアウトは、<span class="futoji">ざっくりとエリアの幅だけ決めて</span>、
細かい調整はその中の「p」とかの要素でやれば大丈夫です。</P>

<H2 class="titlecolor">スタイルシートレイアウトで表示が崩れる原因</H2>
<P>問題は解決しちゃいましたが、一応、そうなる原因を解説します。</P>
<P>原因は、ＩＥ（の互換モード）が、「width」を「padding・border」を加えた大きさとして判断するからです。
本当は、「width」は内容領域の幅を意味するので、「padding・border」を加える前の幅なのです。
</P>
<P>
例えば、ＩＥでは、100pxのwidthを設定した時に、paddingを10px、borderを10pxと設定していたとすると、これらが含まれ、
このとき内容領域80pxになっています。</P>
<P>しかし、他のブラウザでは100pxのwidthを設定したということは、「paddingもborderも含まれない内容領域の幅が100px」という事を意味します。
つまり、paddingとborderの分の20pxだけ、ＩＥに比べて横幅が拡大されます。そして、スタイルシートレイアウトの段組みにその分の余裕がなければ
はじき出され、レイアウトが崩れる原因になってしまうのです。
</P>

<P class="futoji">以上から、レイアウトでは、paddingもborderも指定しなければ（つまり、paddingもborderもゼロなら）、解釈の違いによる問題は起こらないので、そうするのがオススメです。</P>

<!--#include virtual="/ssi/paffiliate.html"-->

<!--#include virtual="/ssi/pmain.html"-->

</div>

<div id="sub">
<!--#include virtual="/ssi/rtop.html"-->
</div>

<br class="cb">

<div id="footer">
<!--#include virtual="/ssi/foot.html"-->
</div>
</div>
</div>
<!--#include virtual="/ssi/aaffiliate.html"-->
</body>
</html>