{"id":298,"date":"2012-02-15T08:30:22","date_gmt":"2012-02-15T06:30:22","guid":{"rendered":"http:\/\/webposible.com\/xposible\/?p=298"},"modified":"2020-01-28T18:15:18","modified_gmt":"2020-01-28T16:15:18","slug":"responsive-web-design","status":"publish","type":"post","link":"http:\/\/webposible.com\/xposible\/2012\/responsive-web-design\/","title":{"rendered":"Responsive web design"},"content":{"rendered":"<h3>Un poco de historia<\/h3>\n<p>El origen de <span xml:lang=\"en\">responive web design<\/span>, para adaptar webs a tel\u00e9fonos m\u00f3viles principalmente, es un art\u00edculo aparecido en <span xml:lang=\"en\">A List Apart<\/span> con el t\u00edtulo de tach\u00e1n&#8230; <a xml:lang=\"en\" href=\"http:\/\/www.alistapart.com\/articles\/responsive-web-design\/\" hreflang=\"en\">responsive web design<\/a>. La t\u00e9cnica consiste en usar:<\/p>\n<ul>\n<li>rejilla flexible<\/li>\n<li><a xml:lang=\"en\" href=\"http:\/\/www.w3.org\/TR\/css3-mediaqueries\/\" hreflang=\"en\"><acronym title=\"Cascading Style Sheets\" xml:lang=\"en\">CSS<\/acronym>3 Media Query<\/a><\/li>\n<li>Im\u00e1genes flexibles (ver <a xml:lang=\"en\" href=\"http:\/\/unstoppablerobotninja.com\/entry\/fluid-images\" hreflang=\"en\">fluid images<\/a>)<\/li>\n<\/ul>\n<p>En el fondo no hay nada nuevo: <span xml:lang=\"en\">Media Query<\/span> es una potente evoluci\u00f3n de <a xml:lang=\"en\" href=\"http:\/\/www.w3.org\/TR\/CSS2\/media.html\" hreflang=\"en\">media types<\/a> presente en <acronym title=\"Cascading Style Sheets\" xml:lang=\"en\">CSS<\/acronym>2, y el uso de rejilla e im\u00e1genes flexibles ya era conocido desde hace tiempo.<\/p>\n<h3>Hispanizando el t\u00e9rmino<\/h3>\n<p>Parece sencillo traducir el t\u00e9rmino original <em xml:lang=\"en\">responsive design<\/em> por dise\u00f1o responsivo. Pero consultando el diccionario de la <acronym title=\"Real Academia Espa\u00f1ola\">RAE<\/acronym>, me ha costado encontrar uno buena traducci\u00f3n que respete el esp\u00edritu del t\u00e9rmino original. Gracias a la buena gente en <span xml:lang=\"en\">twitter<\/span> encuentro buenas alternativas:<\/p>\n<ul>\n<li>dise\u00f1o web adaptable (@1984), con la puntualizaci\u00f3n de @isbl (dise\u00f1o web adaptable a cualquier resoluci\u00f3n de pantalla).<\/li>\n<li>dise\u00f1o web adaptativo (@iagor)<\/li>\n<li>dise\u00f1o web autoadaptable (@ala_747)<\/li>\n<\/ul>\n<p>A m\u00ed personalmente me parece mejor la opci\u00f3n <strong>dise\u00f1o web adaptativo<\/strong>, si hacemos caso al diccionario (definici\u00f3n de adaptativo en la <acronym title=\"Real Academia Espa\u00f1ola\">RAE<\/acronym>):<\/p>\n<dl>\n<dt>adaptativo<\/dt>\n<dd>Perteneciente o relativo a la adaptaci\u00f3n o a la capacidad de adaptaci\u00f3n.<\/dd>\n<\/dl>\n<p>Esa capacidad de adaptaci\u00f3n es lo que me parece m\u00e1s apropiado. Pero bueno, cuesti\u00f3n de opiniones: todas las argumentadas son bienvenidas.<\/p>\n<h3>\u00bfC\u00f3mo funciona?<\/h3>\n<p>Tenemos una t\u00edpica web con su c\u00f3digo <acronym title=\"HyperText Markup Language\" xml:lang=\"en\">HTML<\/acronym>, <acronym title=\"Cascading Style Sheets\" xml:lang=\"en\">CSS<\/acronym>, <span xml:lang=\"en\">javascript<\/span> (imprescindible una librer\u00eda, como <span xml:lang=\"en\">jquery<\/span> y sus correspondientes <span xml:lang=\"en\">plugins<\/span>) y un buen pu\u00f1ado de im\u00e1genes. Todo ese c\u00f3digo es el que se env\u00eda al navegador y le toca al potente ordenador de sobremesa (o al no tan sobrado de potencia tel\u00e9fono m\u00f3vil) procesarlo. Lo cu\u00e1l equivale a descargarse todo, filtrar los estilos que le corresponden, ocultar los elementos invisibles (pero descargados) y mostrarlo en las pantallas de nuestros cacharros, ya sean grandes o peque\u00f1os, potentes o justitos. Siempre y cuando sepan interpretar el c\u00f3digo&#8230;<\/p>\n<p>Ah\u00ed hay un <strong>problema: se conf\u00eda demasiado en el dispositivo de destino<\/strong> (velocidad de conexi\u00f3n y procesador, memoria, capacidad de comprender el c\u00f3digo), y en ocasiones se le env\u00eda demasiados recursos, aunque no los muestre (y es una p\u00e9rdida de tiempo y recursos que en ocasiones puede ser exagerado).<\/p>\n<h3>\u00bfEs la mejor forma de crear una web m\u00f3vil?<\/h3>\n<p>En palabras del que puso nombre a la t\u00e9cnica&#8230;<\/p>\n<blockquote xml:lang=\"en\"><p>I think of responsive design as an alternative to mobile sites.<\/p><\/blockquote>\n<p><cite xml:lang=\"en\">Ethan Marcotte<\/cite> \u2014 <a xml:lang=\"en\" href=\"http:\/\/www.netmagazine.com\/interviews\/ethan-marcotte-responsive-web-design\" hreflang=\"en\">Ethan Marcotte on responsive web design<\/a><\/p>\n<p>Lo considera una alternativa al dise\u00f1o de una web espec\u00edfica para m\u00f3viles. Y yo a\u00f1ado que no es la mejor alternativa. Sigo pensando que un buen trabajo de desarrollo en el servidor, con detecci\u00f3n de dispositivos (mediante <a xml:lang=\"en\" href=\"http:\/\/wurfl.sourceforge.net\/\" hreflang=\"en\"><acronym title=\"Wireless Universal Resource File\">WURLF<\/acronym><\/a> por ejemplo) y env\u00edo de contenido optimizado para dicho dispositivo, obtiene resultados mucho mejores que la t\u00e9cnica de dise\u00f1o web adaptativo. Una muy buena explicaci\u00f3n, la puedes encontrar en la presentaci\u00f3n <a xml:lang=\"en\" href=\"http:\/\/www.slideshare.net\/yiibu\/adaptation-why-responsive-design-actually-begins-on-the-server\" hreflang=\"en\">Why responsive design actually begins on the server<\/a> a partir de la p\u00e1gina 83.<\/p>\n<p>\u00bfExisten ocasiones en las que el dise\u00f1o web adaptativo puede ser una alternativa razonable para ciertos proyectos web? Por supuesto, <strong>depende<\/strong> del tipo de web, de los recursos disponibles, del contenido que se muestra,&#8230; Una web ligera (no como esas de 5 megas), con pocos elementos multimedia, pocas im\u00e1genes, sobre todo texto, pocos recursos de tiempo y dinero, personal con conocimiento <span xml:lang=\"en\">front<\/span> pero no de lenguajes de servidor&#8230; es un proyecto ideal para poner en pr\u00e1ctica la t\u00e9cnica de dise\u00f1o web adaptativo. Al menos es algo.<\/p>\n<p>Pero seamos sinceros: el dise\u00f1o web adaptativo no deja de ser un truco de maquetadores con m\u00e1s o menos conocimiento de <acronym title=\"Cascading Style Sheets\" xml:lang=\"en\">CSS<\/acronym> y <acronym title=\"HyperText Markup Language\" xml:lang=\"en\">HTML<\/acronym> para intentar que una web no se vea demasiado mal en ciertos tel\u00e9fonos m\u00f3viles. Es mejor que nada, pero dependiendo de la web, puede ser una chapuza o algo brillante.<\/p>\n<p>Me permito recomendar dar un vistazo a la presentaci\u00f3n <a xml:lang=\"en\" href=\"http:\/\/www.slideshare.net\/yiibu\/pragmatic-responsive-design\" hreflang=\"en\">Pragmatic responsive design<\/a>. Me parece muy completa y un trabajo m\u00e1s que correcto. Un buen ejemplo a seguir.<\/p>\n<h3>Algunos consejos para dise\u00f1o web adaptativo<\/h3>\n<p>Bueno, hablo en concreto de <acronym title=\"Cascading Style Sheets\" xml:lang=\"en\">CSS<\/acronym>3 <a xml:lang=\"en\" href=\"http:\/\/www.w3.org\/TR\/css3-mediaqueries\/\" hreflang=\"en\">Media Query<\/a>.<\/p>\n<ul>\n<li><strong>Para tel\u00e9fonos m\u00f3viles no tiene sentido usar <code>handheld<\/code> o <code>screen<\/code><\/strong>. Desde que el <span xml:lang=\"en\">iPhone<\/span> dej\u00f3 de considerarse un dispisitivo <code>handheld<\/code> desde el punto de vista del <acronym title=\"Cascading Style Sheets\" xml:lang=\"en\">CSS<\/acronym>, ha sido el primero de una larga lista de dispositivos en considerarse similares a, por ejemplo, un <span xml:lang=\"en\">iMac<\/span> de 27&#8243;. Y no es lo mismo una pantalla de 3,5&#8243; que una de 27&#8243;.<\/li>\n<li><strong>No tiene sentido tampoco tener en cuenta exclusivamente la resoluci\u00f3n de pantalla<\/strong>. El tel\u00e9fono m\u00f3vil <span xml:lang=\"en\">Samsung Galaxy Nexus<\/span> tiene una resoluci\u00f3n de 1280&#215;720 <abbr title=\"pixels\">px<\/abbr>. Muchos netbooks tienen resoluciones de 1024&#215;600. Es uno de los muchos factores a valorar.<\/li>\n<li>Algo que casi nadie ha utilizado, que sepa, y que puede ser muy \u00fatil: <strong>tener en cuenta<\/strong>, no la resoluci\u00f3n de pantalla, sino el <strong>tama\u00f1o de la pantalla en pulgadas<\/strong>. Ah\u00ed va una clasificaci\u00f3n discutible: m\u00f3viles menos de 6&#8243;, <span xml:lang=\"en\">tablets<\/span> entre 6&#8243; y 10&#8243;, ordenadores&#8230; m\u00e1s de 10&#8243; (la pena es que la resoluci\u00f3n de 10&#8243; es usada por <span xml:lang=\"en\">tablets<\/span> y ordenadores). Tras estar haciendo pruebas, creo que es un punto de partida razonable. Adem\u00e1s, funciona. Con un extra importante&#8230;<\/li>\n<li>Usar la <strong>resoluci\u00f3n<\/strong> \u2014desde el punto de vista de la densidad de pixels\u2014 para diferenciar la calidad de las pantallas. Ver donde se explica en <a xml:lang=\"en\" href=\"http:\/\/www.w3.org\/TR\/css3-mediaqueries\/#resolution\" hreflang=\"en\">Media Queries 4.11. resolution<\/a> y en <a xml:lang=\"en\" href=\"http:\/\/members.ping.de\/~sven\/dpi.html\" hreflang=\"en\"><acronym title=\"Dots per inch\" xml:lang=\"en\">DPI<\/acronym> Calculator \/ <acronym title=\"Pixels per inch\" xml:lang=\"en\">PPI<\/acronym> Calculator<\/a> para ver la resoluci\u00f3n de pantalla de diversos dispositivos y una pr\u00e1ctica calculadora.<\/li>\n<li>Recuerda las <strong>televisiones<\/strong>: muchas pulgadas de pantalla pero forzosamente tienen que usar un tama\u00f1o de texto m\u00e1s grande: el m\u00f3vil, la <span xml:lang=\"en\">tablet<\/span> o el ordenador lo tenemos como mucho a medio metro de distancia. Un televisor puede estar a dos, tres o m\u00e1s metros.<\/li>\n<\/ul>\n<h3>El contexto<\/h3>\n<p>Aunque ya est\u00e1 muy visto, es obligado recordar que cada proyecto se desarrolla en un contexto y factores como el presupuesto, el objetivo de la web, conocimientos t\u00e9cnicos, el contenido, los dispositivos,&#8230; y los te\u00f3ricos usuarios de la web. Un sitio para ver estad\u00edsticas de internet es <a xml:lang=\"en\" href=\"http:\/\/gs.statcounter.com\/\" hreflang=\"en\">statcounter<\/a>, por continentes, pa\u00edses, sistemas operativos, m\u00f3viles,&#8230; Ignoro su fiabilidad, pero deber\u00eda abrir los ojos a m\u00e1s de uno.<\/p>\n<h4>El factor <em xml:lang=\"en\">Be Cool<\/em><\/h4>\n<p>Un par de asuntos recurrentes. Por decirlo de una manera suave, empiezo a estar bastante hasta las narices, de que en la teor\u00eda y en la pr\u00e1ctica, los \u00fanicos dispositivos que se utilizan para hablar o aplicar el <span xml:lang=\"en\">responsive design<\/span> (o para esos dos o tres lectores de xposible \u00abdise\u00f1o web adaptativo\u00bb), son los de <span xml:lang=\"en\">Apple<\/span>. Vale que queda muy vistoso utilizar im\u00e1genes de los cacharros de <span xml:lang=\"en\">Apple<\/span> y optimizar el <acronym title=\"Cascading Style Sheets\" xml:lang=\"en\">CSS<\/acronym> para el <span xml:lang=\"en\">iPhone<\/span> y el <span xml:lang=\"en\">iPad<\/span> en vertical y apaisado, pero hay m\u00e1s dispositivos. No les fastidies.<br \/>\nPero el colmo es suponer que todos los cacharros que se conectan a internet tienen el n\u00facleo webkit. Usar prefijos \u00abbeta\u00bb e ignorar los equivalentes de otros n\u00facleos (<code>-moz<\/code>, <code>-khtml<\/code>, <code>-ms<\/code>, <code>-o<\/code>) o directamente las recomendaciones del <acronym title=\"World Wide Web Consortium\" xml:lang=\"en\">W3C<\/acronym> cuando funcionan. Una falta de profesionalidad preocupante. Luego pasa lo que pasa: Is the fat lady singing for Vendor Prefixes?.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Un poco de historia El origen de responive web design, para adaptar webs a tel\u00e9fonos m\u00f3viles principalmente, es un art\u00edculo aparecido en A List Apart con el t\u00edtulo de tach\u00e1n&#8230; responsive web design. La t\u00e9cnica consiste en usar: rejilla flexible CSS3 Media Query Im\u00e1genes flexibles (ver fluid images) En el fondo no hay nada nuevo: [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[32,28,16],"tags":[],"_links":{"self":[{"href":"http:\/\/webposible.com\/xposible\/wp-json\/wp\/v2\/posts\/298"}],"collection":[{"href":"http:\/\/webposible.com\/xposible\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/webposible.com\/xposible\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/webposible.com\/xposible\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"http:\/\/webposible.com\/xposible\/wp-json\/wp\/v2\/comments?post=298"}],"version-history":[{"count":6,"href":"http:\/\/webposible.com\/xposible\/wp-json\/wp\/v2\/posts\/298\/revisions"}],"predecessor-version":[{"id":673,"href":"http:\/\/webposible.com\/xposible\/wp-json\/wp\/v2\/posts\/298\/revisions\/673"}],"wp:attachment":[{"href":"http:\/\/webposible.com\/xposible\/wp-json\/wp\/v2\/media?parent=298"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/webposible.com\/xposible\/wp-json\/wp\/v2\/categories?post=298"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/webposible.com\/xposible\/wp-json\/wp\/v2\/tags?post=298"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}