Интересно, почему диаметрально противоположные поля (верхнее поле следует за нижним полем) между двумя блочными элементами (например, div) объединяются, а между блочным элементом и таблицей эти поля складываются.
Пример:
<style>
.a { margin-bottom: 18px; }
.b { margin-top: 6px; }
</style>
<div class="a">Foo</div>
<div class="b">Bar</div>
...
<table class="a">...</table>
<div class="b">Bar</div>
Обратите внимание: если я изменю свойство отображения таблицы на «блок», оно будет вести себя так же, как любая другая пара блочных элементов, и их поля будут объединены.
Это почему?