h1にfloatを適用しました。marginの相殺はなくなり設定した値が適用されます。clearをh1の下のdivにかけました。そうすることで該当のdivまでh1のmargin-bottomの値に従ってそのすぐ後に配置されます。このdivに上側のマージンを設定しても無効になります。