#div2
下に拡張する理由#div1
は、親の 100% の高さに加えて、その#div2
上の 4 行のテキストによって押し下げられるためです#div1
。
では、これを解決する方法は?うーん... CSS ソリューションを提供することはできますが、あまり柔軟ではありません (JavaScript を使用するソリューションは、よりスケーラブルであり、保守の手間も少なくなります)。HTML 構造を少し変更したので、次のようになります。
<div id="div1">Test
<br/>Test
<br/>Test
<br/>Test
<div id="div3">
<div id="div2">Test</div>
</div>
</div>
変更を明確にするために、 の#div3
周りに要素を追加しました#div2
。さて、私の CSS では、この定義を に追加し、 CSS を次#div3
のように変更しました。body
body {
margin: 0;
line-height:1.3em;
}
#div3 {
position:absolute;
top:5.2em;
bottom:0;
left:0;
width:100%;
}
このアプローチでは、 の先頭から(およびその子) を開始するまでの距離を把握している必要があり#div1
ます。さらに、これら 4 行のテキストの高さを正確に把握する必要があります。ブラウザーはテキストをわずかに異なる行の高さでレンダリングすることが多いため、. その後、その行の高さにテキストの行数 (この場合は 4 行) を掛けて、それを属性として設定するという単純な問題です。#div3
#div2
<body>
top
これが何を達成するかを示すJSFiddleを次に示します。この答えが明確で、あなたが探しているものであることを願っています! そうでない場合はお知らせください。さらにお手伝いさせていただきます。幸運を!