Sinceramente, evitare l'utilizzo del paragrafo mi sembra strano: comunque potrebbe esserci qualche problema che non conosco, per cui ti invito a prendere i miei esempi con beneficio d'inventario.
Inoltre, ma forse questo lo sapevi già, tieni presente che i vari elementi come P, DIV, UL, H1 ..H6 sono di tipo block-level per cui i browser possono aggiungerci un margine a loro piacimento. Per evitarmi delle sorprese, all'inizio di ogni css metto una regola che ne azzera i margini e i padding, in modo da livellare la presentazione grafica.
esempio:
codice:
p, div, ul, h1, h2, h3, form, table
{margin: 0; padding: 0;}
Successivamente, sempre nel css, con altre regole più specifiche vado a controllare i margini che mi servono.
esempio:
codice:
div#box1 {margin: 10px 15px 0 20px;}
ciao!!