Hola!,
A lo largo de mi experiencia en diseño web, siempre he tenido la duda y problema de que es lo más conveniente para estructurar cada elemento HTML de la página web, es decir, en que lugar irá cada parte de la página web.
Yo conozco dos alternativas:
1. Usar tablas: la desventaja es que a la larga es complicado colocar nuevos elementos usando colspan y rowspan.
2. Usar la propiedad float: el problema es que para que el nodo padre mantenga la mísma altura, deves también flotarlo a la dirección de los nodos hijos.
3. Usar distintos valores para la propiedad display (inline, list-item, table-cell, etc):
es un poco confuso cuándo deven ser aplicadas estás posiciones pués suele pasarme que no funcionan como yo quiero que funcionen.
Últimamente he usado float:left para varios proyectos y hasta el momento es la mejor forma que he usado para estructurar por que me ha permitido acomodar cada elemento dónde me apetezcca casi sin problemas y sin usar posiciones absolutas. Pero creo que no es un buen camino para desarrollar páginas web completas por que he analizado páginas web importantes y es raro que utilizen float. Lo raro que tampoco veo que utilizen tablas y por eso sigo con la duda! hehe.
Necesito que alguien me diga como puedo hacer estas cosas correctamente, agradezco mucho sus comentarios, saludos.