viernes, 21 de marzo de 2008

Disposición: divs vs. tablas

¿Por qué hacemos hincapié en los sitios que hemos diseñado "sin tablas"?

Cómo la intención de este blog es explicar las cosas para quien quiera contratar el diseño de un sitio web, vamos a tratar de ser claros:

Existen dos formas básicas de ubicar cada elemento (encabezado, menues, texto) en una página web: divs o tablas.
La forma tradicional de hacerlo, con los primeros navegadores (Internet Explorer 4 y Netscape) era mediante el uso de tablas.

Cuando los navegadores evolucionaron, e implementaron el CSS, se pudo hacer el diseño empleando solamente divs.

Existen defensores y detractores de ambos métodos.

Quienes defienden a ultranza el uso de divs esgrimen los siguientes argumentos:
- Con CSS es más fácil posicionar exactamente cada elemento
- Al separar el diseño del contenido, el contenido es más fácil de mantener.
- Por la misma causa, el sitio es más fácilmente indexado por los buscadores (o se aque quien busque va a atener más posibilidades de encontrarlo).
- Para obtener un diseño preciso utilizando tablas, las páginas serán más grandes y consumirán más ancho de banda.
- Pueden crearse distintas hojas de estilo para distintos medios: computadoras, PDA, celulares, o para imprimir.
- A veces, el orden del contenido en una tabla no respeta el orden en que una persona lo leeería, tornando imposible su lectura por lectores de pantalla (utilizados por personas con dificultades visuales)

Quienes defienden el uso de tablas sostienen que:
- Es más sencillo diseñar con tablas
- El Internet Explorer (usado por el 80% de los usuarios) no interpreta el CSS como los demás navegadores. Esto es más evidente en la disposición (layout) que en los demás atributos CSS, y requiere el uso de "hacks" (trampas) para que el sitio se vea igual en todos lados.
- Muchas veces para obtener lo que queremos se requiere el uso de divs anidados, cuando con una tabla sería más simple.

Como con todo en la vida, cuando se da una pelea de estas características, es a todo o nada. Mi postura es siempre una postura intermedia: tomar lo mejor de ambos mundos.
Trato de utilizar CSS cada vez que puedo, pero cuando no puedo obtener el resultado deseado, no dudo en utilizar una tabla para la disposición general. Siempre con la idea de mantener el código lo más limpio posible.

Fuentes:
http://alt1040.com/2003/10/tablas-vs-css/
http://www.dmag.org.uk/resources/design_articles/cssvtablesforlayout.asp
http://www.mardiros.net/css-layout.html
http://www.maestrosdelweb.com/editorial/usarcss/
http://www.effectivetranslations.com/stupidtables/everything_es.html