Cita:  Tengo un fondo en el body que quiero que se vea por encima de cualquier otro elemento de la web.
     Cita:  div#fondo{
position:fixed; /*En caso de que lo quieras fijo*/
background-image:url('images/bg.jpg') no-repeat transparent;
width:100%;
height:100%;
z-index:100; /*Evitar tener algun elemento con z-index superior*/
}
    No sé que necesidad hay con ponerlo en el body. 
El resto no te entiendo: 
el típico problema de z-index