hola
kfh1992 al parecer ya sabes en parte la respuesta, que es (dentro de css2) usar
float:left/right; o bien
display:inline-block;. Aunque tu problema parece estar en el orden en que declaras los elementos en el html, es decir, en el "flujo" que das a tu documento. El navegador renderiza los elementos del documento de izquierda a derecha y de arriba a abajo y así será salvo que saques de flujo las cajas (float, position, display).
+ info
Ejemplo: Si quieres que "fotos,descripcion,menu " suba "hacia arriba" o lo declaras primero en el html y trabajas con posicionamiento por defecto (static) o relativo y display:inline-block; (display:inline-block funciona de la misma forma que por ejemplo <strong> dentro de un <p>, o sea cajas de linea dentro de una caja de bloque, el funcionamiento es similar), o usas float. O lo declaras en otro lugar y luego lo posicionas con position:absolute.
Saludos.