次の 2 つのリンクを読むことを強くお勧めします:
http://www.w3.org/TR/CSS2/visuren.html
http://www.w3.org/TR/CSS2/box.html
位置/表示の仕組みとマージン/などの違いを正しく理解することが重要です。
現在、display:block を使用しています。これは基本的に、各要素が次の要素の下に配置されることを意味します。
右マージンを使用しています。これにより、要素の右側に白いマージンが強制され、そのスペースに何も配置できなくなります
最後に、テーブルを使用して 4 つのブロック要素を並べて配置したい場合は、多くの問題を緩和できます (ただし、テーブルを使いすぎないでください)。
したがって、このようなものを設定する最も簡単な方法: (レイアウトを html に配置しましたが、css に配置することもできます。また、現在セクションにあるすべての配置と高さのヒントを削除します。それらはすべてのスペースを取る必要があります。彼らは表のセルの中に入れることができます
<table height="100%" border=1>
<tr height=50%>
<td width=100%><section id="room">room</section></td>
<td width=200px><section id="users">users</section></td>
</tr>
<tr height=50%>
<td><section id="friends">friends</section></td>
<td><section id="chat-bar">chatbar</section></td>
</tr>
</table>