Vivimos en un tiempo donde la resolución y tamaño de pantalla “estándar” es imposible de predecir para todos los medios y dispositivos. Desde el clásico 640×480 px hasta el 1024×768 px (pasando por 800×600 px) hemos visto desfilar diferentes “resoluciones estándar de pantallas”. Sin embargo, el éxito de los monitores wide, con diferentes proporciones y resoluciones en sus pantalla, sumado a esto la expansión infinita de smartphones y tablets, han conjugado un nuevo panorama en el diseño y desarrollo de sitios web.
Crear un sitio con dimensiones fijas ya no será suficiente en la mayoría de los casos y la capacidad de detectar características de pantalla se ha vuelto una necesidad fundamental para diseñadores y desarrolladores Web. De la mano de CSS3 encontramos un excelente camino para resolver esta necesidad.
¿Qué podemos hacer con Media Queries? Muchas cosas. Entre ellas aplicar reglas de estilos según el ancho o el alto de la pantalla o modificar estilos cuando el dispositivo cambia su orientación (entre vertical y horizontal).
¿Un ejemplo de uso? Supongamos que tenemos dos divs (cuyas id son div1 y div2, respetivamente) y que los tenemos flotando a la izquierda. El primer div ocupa el 30% y el segundo 70% en el esquema. El CSS sería algo como lo que sigue:
div1{width:30%;float:left;}
div2{width:70%;float:left;}
Ahora vayamos al caso que al estar en una resolución de un dispositivo móvil, por ejemplo 480px de ancho, deseamos que los divs ocupen, cada uno, el total del ancho y queden uno debajo del otro (en lugar de estar uno al lado del otro). Podremos aplicar una regla de Media Queries como la que sigue:
@media screen and (max-width: 480px) {
div1{width:100%;}
div2{width:100%;}
}
¿Sencillo, verdad? Si bien cuando suelo explicar esto a mis alumnos parece ser “pan comido”, la realidad indica que en estructuras más complejas puede ser más laborioso llegar al modelo ideal, sin embargo, Media Queries nos abre las puertas para un mundo fascinante que nos permitirá resolver una multitud de situaciones de diseño. De la mano de esta característica, aparece también una nueva tendencia denominada Responsive Web Design o el Diseño Web Adaptado al Dispositivo.
Es importante destacar que Media Queries es W3C Recommendation desde Junio de 2012 y cuenta con muy buena compatibilidad en navegadores de escritorio y también en móviles (http://caniuse.com/css-mediaqueries).
¿Te interesa aprender más sobre como integrar HTML5 y CSS3 en tus sitios Web? Puedes escribirnos.

28/05/2012 at 9:40
Me topé con ese problema al confeccionar una revista de mi asociación y quería que se viese bien en cualquier tipo de pantalla.
Al final opté por un grid horizontal y vertical fluido con un javascript pequeño para redimensionar las fuentes en función del tamaño vertical y horizontal de la pantalla y un media querie para pantallas menores de 641px, o sea, móviles.
No sólo eso, sino que además quería que sin css y javascript fuese accesible.
Pd.: Aun quedan cosas por mejorar, pero poco a poco.
28/05/2012 at 12:15
No hay técnica perfecta. Igualmente en mis desarrollos siempre he optado por Mediaqueries, los grids no me terminan de convencer. Pero es cuestión de analizar lo mejor para cada proyecto sin fanatizar por una técnica u otra.
Saludos y gracias por el comentario.
28/05/2012 at 10:31
Hola Damián un gusto, otra alternativa puede ser modernizr un framework, que realiza las compatibilidades de resoluciones.
http://modernizr.com/
Utilizando html5 y css3, está bueno para las resoluciones mobile.
Saludos!
28/05/2012 at 12:14
Modernizr es una gran herramienta que ha evolucionado muy bien. Es de gran ayuda para todos los que desarrollamos con HTML5 y CSS3
28/05/2012 at 12:34
El problema que tuve con Modernizr, realice todos los pasos que dice la doc pero no funcionó, busque todas las formas y nada.
Así que seguro siga con Media Queries que me funciona siempre
Saludos.
28/05/2012 at 12:43
Mediaqueries es útil para trabajar con diferentes resoluciones de pantalla mediante CSS.
Modernizr es para detectar características soportadas por el navegador y actuar en consecuencia. Lo que hay que tener en cuenta es que Modernizr nos dirá lo que informe el navegador y si el navegador informa un “falso positivo” eso nos puede traer un problema.
Hay un caso que he notado y es cuando deseas testear el soporte de audio de HTML5 en Android 2.2. Te dice que funciona pero en la práctica no anda. Esto es porque el soporte de audio está en esa versión, pero no soporta ningún códec. Para hacer el test fiable, se debe hacer por tipos, en ese caso.
Saludos
10/12/2012 at 14:25
Hola quisiera saber como ubicar una capa y que se localice siempre en la misma posicion en distintas resoluciones de pantalla.
dado que si cambio la resolucion o saco alguna barra de herramientas, como favoritos menu etc….. se mueve de pocion
la capa contiene una imagen trasnparente que siempre aparece igual del musmo color y mantiene la transparencia , eso anda bien, pero la ubicacion no es la misma en distintos resoluciones en distintos monitores (comunes, lcd, etc…)
Bueno Gracias
Ariel
11/12/2012 at 11:31
Ariel: para ubicar un elemento en una posición fija podés usar o bien positio:absolute o position:fixed (según corresponda a lo que necesites hacer). Te paso un link donde explica y da ejemplos de como se usa la propiedad position de CSS: http://www.w3schools.com/cssref/pr_class_position.asp
Saludos
Damián
29/01/2013 at 18:27
Tengo mi web creada y lista … con todo sus css … el problema que hace poco me pidieron que sea compatible en varias resoluciones.
El punto es que yo cuando llamo a una pagina … esta pasa por parametros los anchos y altos de cada pagina… y no se como contrar eso y complementarlo para que se pueda ver en varias resoluciones ….
se te agradece la ayuda
29/01/2013 at 19:39
El tema es que si tu sitio Web originalmente estaba pensado con medidas fijas y ahora necesitas que se adapta, tendrás que analizar todos los aspectos de usabilidad, accesibilidad y diseño para que pueda adaptarse.
No se a qué parámetros te refieres, pero para contruir un contenido adaptable puedes usar MediaQueries, que te permitirá generar reglas condicionales en el CSS y así aplicarlas según el medio y sus características.
Saludos
Damián