efectivamente derkenuke, los dos elementos tendrian position:absolute. 
 
Buscando por ahi he encontrado esto: 
http://www.java2s.com/Code/JavaScrip...imaenglish.htm 
En la función detectar_colision () nos encontramos con esto:   
 Cita:  //Calcular si coinciden horizontalmente:
                if (personaje_pos_x + 40 > enemigo_pos_x && personaje_pos_x < enemigo_pos_x || personaje_pos_x < enemigo_pos_x + 40 && personaje_pos_x > enemigo_pos_x)
                 {
                    //Calcular si tambien coinciden verticalmente: 
                    if (personaje_pos_y < enemigo_pos_y + 40 && personaje_pos_y > enemigo_pos_y || personaje_pos_y + 40 > enemigo_pos_y && personaje_pos_y < enemigo_pos_y)
                     {
    ¿Creeis que es una buena forma de detectar la colision o existe alguna otra más optima?