回答:
親div
はwidth
、ピクセル単位またはパーセンテージのいずれかでを定義する必要があります。Internet Explorer 7では、親div
が正しく機能するにはwidth
、子の定義済みのパーセンテージが必要div
です。
これがサンプルコードです。これはあなたが探しているものだと思います。以下は、Firefox 3(mac)とIE7でまったく同じように表示されます。
#absdiv {
position: absolute;
left: 100px;
top: 100px;
width: 80%;
height: 60%;
background: #999;
}
#pctchild {
width: 60%;
height: 40%;
background: #CCC;
}
#reldiv {
position: relative;
left: 20px;
top: 20px;
height: 25px;
width: 40%;
background: red;
}
<div id="absdiv">
<div id="reldiv"></div>
<div id="pctchild"></div>
</div>
IE7で絶対配置された親の子のパーセント幅が機能しないのはなぜですか?
Internet Explorerだから
ここで見逃しているものはありますか?
つまり、同僚の/クライアントのIEが下手だという認識を高めることです。
子供のピクセルベースの幅以外に簡単な修正はありますか?
em
ユニットを使用して、液体レイアウトを作成するときに、パディング、マージン、フォントサイズに使用できるため、より便利です。したがって、テキストのサイズを変更すると、テキストに比例してホワイトスペースが拡大および縮小します(これは実際に必要なものです)。パーセンテージでemsよりも細かく制御できるとは思いません。100分の1エム(0.01エム)で指定するのを止めるものは何もありません。ブラウザは適切と解釈します。
これをカバーするCSS仕様の領域はありますか?
覚えていない限り、em
's and%' sはCSS 1.0のフォントサイズのみを対象としていました。
div
定義された幅を持っている必要があります:
<div id="parent" style="width:230px;">
<div id="child1"></div>
<div id="child2"></div>
</div>