credo che debba impostare sull h1 margini e padding 0.
preso da pro.html.it
I vari browsers per consentire una visualizzazione dignitosa di una pagina html che non ha foglio di stile linkati, attribuiscono valori di default per margini e padding ad alcuni elementi block-level e altri elementi. Tra questi vi sono il body, le liste, i paragrafi e gli header. Per quanto ne so, solo i div e gli elementi inline hanno margini e padding di default a zero dal browser. Per gli altri elementi, valori di margin e padding vengono "assegnati d' ufficio" e non vi è modo di venirne a conoscenza con precisione. Infatti tali valori dipendono da molti fattori, tra i quali la risoluzione dello schermo, la dimensione dei font della pagina e impostata tramite le opzioni del browser e soprattutto dai browsers stessi. Il pieno controllo di una pagina html con i fogli di stile, se vogliamo che renda le spaziature uguali in tutti i browsers, implica lo specificare valori di margini e padding per tutti gli elementi che verranno utilizzati e che hanno valori di default non nulli.

ciao