se non andassi a capo nel codice (parlo proprio del markup dei div) funzionerebbe
i browser moderni considerano nodi di testo (vuoti, ma pur sempre nodi) spazi e rimandi a capo nel codice
il che vuol dire che il firstChild c'e', ma non e' un elemento, quindi cercare di settarne lo stile genera un errore
risolvi valutando il nodeType del nodo in questione, se e' 1 hai a che fare con un elemento, altrimenti devi considerare il nextSibling finche' non diventa 1
var first = getFirstChild(document.getElementById( "primo"));
dove getFirstChild e' qualcosa del genere
ciaocodice:function getFirstChild(el){ while(el && el.nodeType!=1){ el=el.nextSibling; } return el; }