発生する問題は次のとおりです。CSS を使用して要素を相対的に配置した後、要素があった場所の空白を取得します...空白は必要ありません!
.thetext
{
width:400px;
background:yellow;
border: 1px dashed red;
margin:50px;
padding:5px;
font-weight:bold;
}
.whiteblob
{
position:relative;
top:-140px;
left:70px;
width:200px;
height:50px;
border: 4px solid green;
background:white;
font-size:2.5em;
color:red;
}
.footerallowedwhitespaceinblue
{
height:10px;
background-color:blue;
}
.footer
{
background-color:grey;
height:200px;
}
<div class="thetext"><script type="text/javascript">for(c=0;c<50;c++){document.write("Lorem ipsum dolor est, ");}</script>
</div>
<div class="whiteblob">
buy this!
</div>
<div class="footerallowedwhitespaceinblue">
</div>
<div class="footer">
The whitespace above is way to big! The buy this still takes up space whilst it is moved.
</div>
JSFiddle: http://jsfiddle.net/qqXQn/
例でわかるように、必要な唯一の空白は、thetext ブロックによって 50px のマージンで発生する空白です。フッターによるスペースは、青で許可されたホワイトスペースです(青にして見えるようにします)。問題は...「これを買う」divが相対的に配置された後もスペースを占有しているため、空白が大きすぎることです。
これを解決するにはどうすればよいですか?