スタイルとスタイルの間に不要なマージンがblock1
あります。このjsFiddleを参照してください。block2
display: inline-block
HTML
<div id="container">
<div id="innercontainer">
<div id="block1">
block1
</div>
<div id="block2">
block2
</div>
</div>
</div>
CSS
* {
margin: 0px;
padding: 0px;
}
#container {
background-color: #f00;
width: 100%;
height: 200px;
}
#innercontainer {
background-color: #0f0;
width: 200px;
height: 200px;
margin: 0px auto;
}
#block1, #block2 {
display: inline-block;
background-color: #00f;
height: 200px;
}
HTMLを次のように変更すると、マージンが消えます。
<div id="container">
<div id="innercontainer">
<div id="block1">
block1
</div><div id="block2">
block2
</div>
</div>
</div>
またはこれ:
<div id="container">
<div id="innercontainer">
<div id="block1">
block1
</div><!--
--><div id="block2">
block2
</div>
</div>
</div>
私は後者の方が好きですが、元のHTMLを使用できるように誰かが解決策を知っているかどうかは疑問ですが、に空白は表示されませんinnercontainer
。また、レイアウトに他の問題が発生するため、float: left;
両方block1
に設定しblock2
たり、フローティングにしたりすることは避けたいことに注意してください。position: absolute|relative
何か案は?
編集
さて、レイアウトにもっと問題がありました。block1に画像を追加すると、ブロック全体が下に移動し、非常に奇妙になりました(jsFiddleを参照)。私は現在使用してfloat: left
おり、右側の空き領域を消費するdivを追加する方法を理解する必要があります。