<?xml version="1.0" encoding="UTF-8"?> <rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" ><channel><title>IMGDigital &#187; form</title> <atom:link href="http://www.imgdigital.com.ar/tag/form/feed" rel="self" type="application/rss+xml" /><link>http://www.imgdigital.com.ar</link> <description>Hosting Solutions</description> <lastBuildDate>Tue, 12 Apr 2011 12:59:04 +0000</lastBuildDate> <language>en</language> <sy:updatePeriod>hourly</sy:updatePeriod> <sy:updateFrequency>1</sy:updateFrequency> <xhtml:meta xmlns:xhtml="http://www.w3.org/1999/xhtml" name="robots" content="noindex" /> <item><title>Preparate para el HTML 5</title><link>http://www.imgdigital.com.ar/textos/preparate-para-el-html5</link> <comments>http://www.imgdigital.com.ar/textos/preparate-para-el-html5#comments</comments> <pubDate>Wed, 26 May 2010 03:10:36 +0000</pubDate> <dc:creator>admin</dc:creator> <category><![CDATA[Textos]]></category> <category><![CDATA[a list apart]]></category> <category><![CDATA[canvas]]></category> <category><![CDATA[form]]></category> <category><![CDATA[HTML 5]]></category><guid isPermaLink="false">http://www.imgdigital.com.ar/?p=25</guid> <description><![CDATA[Con el soporte en Chrome, Firefox 3.5, Opera, y Safari, el HTML 5 está llegando a Uds como un tren desbocado. Aquí hay algunas sugerencias para ayudarlos a prepararse para subirse, antes que este deje la plataforma y los deje.]]></description> <content:encoded><![CDATA[<p class="referencia">Este es un texto publicado en la edición <a href="http://www.alistapart.com/issues/291">291</a> del 1 de Septiembre de 2009 de <a href="http://www.alistapart.com">Alist apart </a>versión en inglés http://www.alistapart.com/articles/get-ready-for-html-5/<a href="http://alistapart.com/articles/dynatext/"> </a>por <a href="http://www.alistapart.com/authors/e/j.davideisenberg">J. David Eisenberg</a> para A list apart.<br /> Traducido al español por Federico Reinoso para IMGDigital</p><p>Con el soporte en Chrome, Firefox 3.5, Opera, y Safari, el HTML 5 está <a href="http://www.imdb.com/title/tt0082193/">llegando a Uds</a> como un <a href="http://www.imdb.com/title/tt0089941/">tren desbocado</a>. Aquí hay algunas sugerencias para ayudarlos a prepararse para subirse, antes que este deje la plataforma y los deje.</p><h2>Mirar lo que hicieron otros</h2><p>Lo primero que pueden hacer para prepararse para el HTML 5  es mirar como lo estan usando otras personas. Una visita a la <a href="http://html5gallery.com/">galería HTML 5</a> les mostrará como varios sitios ya están usando los nuevos elementos HTML 5. ¡Usa la fuente Luke!</p><h2>Ahora hacelo vos.</h2><p>Podés mirar los sitios, leer todos los artículos <a href="http://www.alistapart.com/articles/previewofhtml5/">aquí</a> y en <a href="http://html5doctor.com/">cualquier parte</a>, hasta podés <a href="http://www.whatwg.org/specs/web-apps/current-work/">leer las especificaciones</a> – pero nada de todo este te ayudará a entender HTML 5 como el hecho de <em>usar</em> los nuevos elementos.  Podés modificar parte de un sitio existente o experimentar creando nuevas páginas. Yo lo hice actualizando <a href="http://langintro.com/hamburg5/">el relato de un viaje que hice para mis amigos y familia</a>. (Nunca fue pensado para ser mostrado en público, pero ahí lo tienen)</p><p>Haciendo esto, te darás cuenta que funciona y que no. Por ejemplo, descubrí  esto mientras escribía que, Firefox 3.5 maneja los elementos como <code>article</code> y <code>section</code> como <code>display:inline</code>, y tuve que asignarles los a <code>display:block</code> para que funcionen como se esperaba.</p><h2>La X marca el lugar</h2><p>Si sos como la mayoría de los diseñadores, probablemente no escribas tu código a mano. Pero hasta que las herramientas habituales se actualicen a los nuevos elementos en (X)HTML 5, deberás hacer algo de la codificación a mano mientras aprendés. Hay algo de confusión (¡y controvercia!) acerca de la relación entre HTML 5, XHTML 1.0/1.1, and XHTML 5. Clarifiquemos esto ahora mismo.</p><p>HTML 4.0 (el código que todos conocemos y amamos) está basado en un &#8220;reglamento&#8221; llamado SGML. En el reglamento del SGML, los nombres de los elementos no tomaban en cuenta como se escribían (mayúsculas o minúsculas) podés tener elementos que opcionalmento deben ser cerrados (como &lt;p&gt;) y se puede poner valor a los atributos sin tener que &#8220;envolverlos&#8221; entre comillas. XHTML 1.0 y 1.1 están basados en XML. En XML, los nombres de los elementos y atributos son sensibles a la manera de escrinirlos (mayúsculas y minúsculas) y cada tag abierto, debe tener un cierre y los valores de los atributos deben estar entre comillas.</p><p>HTML 5 define una demarcación que no está basada en ninguna de las anteriores, pero puedes ser escrito en un &#8220;formato tipo HTML&#8221; (o serializarlo, como dicen las especificaciones ) o en un &#8220;formato XHTML&#8221; .</p><p>Cuando uno escribe código HTML, estás autorizado a dejar afuera algunas de las tags de cierre (¡y algunas de apertura!) no necesitas entrecomillar los valores de los atributos si estos no tienen espacios, y los elementos y los nombres de los atributos no diferencian mayúsculas y minúsculas. También obtenemos algo de la codificación XML; podemos poner una &#8220;barra&#8221; en elementos tales como <code>&lt;img /&gt;</code> or <code>&lt;hr /&gt;</code>.</p><p>Cuando usamos la serialización XHTML, debemos seguir las reglas del XML mencionadas anteriormente.</p><p>Te sugiero que escribas el código en XHTML 5, o, si usas HTML 5, escribas como si hicieras XHTML. Hay que quedarse lejos del standard XML que pide cerrar los tag de cada tag abierto en lugar de perder el tiempo optimizando el código cerrando tags que tienen cierres opcionales y/o aperturas. Igualmente, entrecomillá todos los valores de los atributos en lugar de ponerte a pensar cuales llevan y cuales no. Como agregado el evitar pensar en todas estas cosas no sólo hará que sufras menos dolores de cabeza, sino que además tu código será mas consistente.</p><p>Una vez que los programas se pongan al día con su generación de código, vas a preferir que generen XHTML5 en lugar de HTML 5. El uso del XML es mirar hacia el futuro; sus características te permiten a generar &#8220;documentos políglotas&#8221; que consisten en múltiples formatos más allá de RDFa, MathML, y SVG de HTML 5. También puedes usar herramientas como  <a href="http://www.w3.org/Style/XSL/">XPath, XSLT, y XQuery</a> en tu código basado en XML, usando cualquier procesador XML (aunque hay un <a href="http://about.validator.nu/htmlparser/">procesador en Java</a> que trabaja con HTML 5).</p><p>Por su puesto, no todo son buenas noticias. Si te abocas al HTML 5, acordate que tu servidor <em>debe</em> devolver los documentos en el formato MIME de <code>application/xhtml+xml</code> o <code>text/xml</code>. Esto puede que tengas que negociarlo con tu compañía de hosting. También, cuando recibas un archivo XML, cualquier error de sintáxis va a causar un mensaje de error.</p><div class="illustration full left"><div id="attachment_64" class="wp-caption alignnone" style="width: 550px"><a href="http://www.imgdigital.com.ar/wp-content/uploads/2010/05/error_message.png"><img class="size-full wp-image-64" title="Fig. 1. Error de proceso XML por tags desparejas." src="http://www.imgdigital.com.ar/wp-content/uploads/2010/05/error_message.png" alt="" width="540" height="160" /></a><p class="wp-caption-text">Fig. 1. Error de proceso XML por tags desparejas.</p></div></div><p>Si estás escribiendo tu código a mano, tomá estos mensajes como una manera de mantenerte en orden. Si estás usando algún programa que crea XHTML, entonces no hay problema; estas herramientas siempre suelen producir XML bien nivelado.</p><h2>Expresiones Regulares</h2><p>El HTML 5 extiende el elemento <code>input</code> dándole nuevos atributos que te permiten especificar que datos vas a permitir como entrada. Estos atributor incluyen <code>min</code> y <code>max</code> (para dar un rango numérico), y HTML 5 también ofrece nuevos valores para el atributo <code>type</code>, como <code>url</code>, <code>email</code>, <code>date</code> (fecha), y <code>time</code> (hora)</p><p>Si ninguno de estos nuevas clases se adapta a tus necesidades, HTML 5 provee del atributo <code>pattern</code> para los elementos <code>input</code> con el <code>type="text"</code>. El valor para el atributo  <code>pattern</code> es una expresión regular, como las definidas en <a href="http://www.ecma-international.org/publications/files/ECMA-ST/ECMA-262.pdf">ECMAScript</a> y usadas en JavaScript. Las Expresiones Regulares son una manera consistente y quizás algo crípticas de hacer un pattern de caractéres. Por ejemplo si necesitás hacer coincidir un grupo de cinco dígitos o nueve dígitos del código postal de USA o el de seis caracteres de Canadá, puedo usar el siguiente pattern:</p><pre>([0-9]{5}(-[0-9]{4})?)|([A-Z][0-9][A-Z]\s+[0-9][A-Z][0-9])</pre><p>Las nuevas capacidades de los formularios web han sido parcialmente implementadas en Safari y Chrome y por completi en Opera (mirar <a href="http://a.deveria.com/caniuse/#agents=All&amp;eras=All&amp;cats=HTML5&amp;statuses=rec,cr,wd,ietf">este sitio</a> para ver las posibildades de cada navegador). No te preocupes si u navegador no soporta las extensiones a HTML 5 al <code>form</code>; podés descargar el <a href="http://code.google.com/p/webforms2/">Google’s Web Forms 2</a> y estás listo para hacerlo andar!</p><p>Aca hay un ejemplo de un formulario que valida la fecha y el código postal:</p><div class="working-sample"><form id="validateForm" action="javascript:show_ok()">Ingrese la fecha:</p> <input title="Use format yyyy-mm-dd" name="day" type="date" />Ingrese un código postal USA o Canadiense:</p> <input title="US: 99999-1234; Canadian: A1B 2C3" name="postCode" type="text" /> <input type="submit" value="Verifique la Data" /> <span id="ok" class="ok" style="display: none;"> Datos válidos! </span></p></form></div><p>Y aquí el código correspondiente:</p><pre>&lt;p&gt;
Enter a date: &lt;input type="date" name="day"
required="required"
title="Use format yyyy-mm-dd" /&gt;
&lt;/p&gt;

&lt;p&gt;
Enter a US or Canadian Postal Code:
&lt;input type="text" name="postCode"
required="required"
pattern="([0-9]{5}(-[0-9]{4})?)|([0-9][A-Z][0-9]\s+[A-Z][0-9][A-Z])"
title="US: 99999-1234; Canadian: 0A1&amp;#160;B2C" /&gt;
&lt;/p&gt;</pre><p>Aprender Expresiones regulares es algo que bien vale la pena tomarse el tiempo de aprender. Muchos editores de texto ofrecen expresiones regulares integradas en su sistema de búsqueda y reemplazo, y cuando empezás a usarlas, te vasa preguntar como fuiste capaz de vivir sin ellas.</p><h2>Arte estático con SVG</h2><div class="illustration right"><div id="attachment_65" class="wp-caption alignright" style="width: 169px"><a href="http://www.imgdigital.com.ar/wp-content/uploads/2010/05/svg_screenshot.png"><img class="size-full wp-image-65" title="Fig. 2. Imagen de SVG mostrando formas coloreadas." src="http://www.imgdigital.com.ar/wp-content/uploads/2010/05/svg_screenshot.png" alt="circulo rojo y octágono azul superpuestos por un cuadrado verde transparente" width="159" height="74" /></a><p class="wp-caption-text">Fig. 2. Imagen de SVG mostrando formas coloreadas.</p></div><p>Si lo que buscas es dibujos vectoriales de bordes definidos, HTML 5 les permite poner  <a href="http://www.w3.org/Graphics/SVG/">SVG (Scalable Vector Graphics)</a> en sus documentos. Colocar SVG embebido está parcialmente implementado en Firefox, Safari, y Opera, de acuerdo con <a href="http://wiki.whatwg.org/wiki/Implementations_in_Web_browsers">este sitio</a>.</p></div><p>Podés <a href="/d/get-ready-for-html-5/gatto02.svg">linkear a un archivo SVG</a> en Firefox 3.5. Ese gráfico es un poquito complejo —<a href="/d/get-ready-for-html-5/simple.svg">acá hay uno mucho más simple</a> (vea Fig. 2) mostrando algunas formas coloreadas.</p><p>Y aquí está el SVG que genera:</p><pre>&lt;svg xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
viewBox="0 0 200 100"
width="200px" height="100px"&gt;

&lt;circle cx="50" cy="50" r="30"
    style="stroke:none; fill:#ff0000;"/&gt;

&lt;g transform="translate(100, 20) scale(1.65)"&gt;
    &lt;polygon points="36 25, 25 36, 11 36, 0 25,
        0 11, 11 0, 25 0, 36 11"
        style="stroke:none; fill:#0000ff;" /&gt;
&lt;/g&gt;

&lt;rect x="60" y="20" height="60" width="60"
    style="stroke:none; fill:#00ff00;
    fill-opacity: 0.5;" /&gt;
&lt;/svg&gt;</pre><p>Aunque es posible usar JavaScript para dinámicamente modificar un gráfico SVG, HTML 5 provee una solución mejor:</p><h2>El <code>canvas</code> (lienzo) en blanco</h2><p>El elemento  <code>canvas</code> es uno de las mas exitantes  caracaterísticas del HTML 5, y es soportado por Firefox, Safari, Opera, y Chrome—pero no por Internet Explorer. (que raro&#8230;) El elemento <code>canvas</code> es verdaderamente una característica avanzada. Puedes usar Javascript para dibujar lo que quieras (literalmente) en este lienzo en blanco.</p><p>Aquí va el gráfico SVG del ejemplo, usando sólo canvas:</p><div class="working-sample"><p>Perdón, pero tu navegador no soporta<br /> <code>&lt;canvas&gt;</code> <img src='http://www.imgdigital.com.ar/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /></p></div><p>Y aquí está el JavaScript que lo fabrica (con multiples estadíos por línea para ahorrar espacio):</p><pre>function drawSimpleCanvas() {
  var canvas =
    document.getElementById("simpleCanvas");
  if (canvas.getContext) {
    var ctx = canvas.getContext("2d");

    ctx.beginPath(); // the circle
    ctx.fillStyle = "#ff0000";
    ctx.arc(50, 50, 30, 0, 2*Math.PI, true);
    ctx.closePath();
    ctx.fill();
    ctx.save();

    // move and resize the octagon
    ctx.translate(100, 20);
    ctx.scale(1.65, 1.65);
    ctx.fillStyle = "#0000ff";
    ctx.beginPath();
    ctx.moveTo(36, 25); ctx.lineTo(25, 36);
    ctx.lineTo(11, 36); ctx.lineTo(0, 25);
    ctx.lineTo(0, 11); ctx.lineTo(11, 0);
    ctx.lineTo(25, 0); ctx.lineTo(36, 11);
    ctx.closePath();
    ctx.fill();

    // restore graphics as they
    // were before move and resize
    ctx.restore();
    ctx.fillStyle = "#00ff00";
    ctx.globalAlpha = 0.5;
    ctx.beginPath();
    ctx.rect(60, 20, 60, 60);
    ctx.closePath();
    ctx.fill();
  }
}</pre><p>Acá hay un <code>&lt;canvas&gt;</code> que demuestra el uso de una simple interacción del usuario:</p><div class="working-sample"><p>Sorry, but your browser does not support<br /> <code>&lt;canvas&gt;</code> <img src='http://www.imgdigital.com.ar/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /></p><form id="drawingForm" action="javascript:drawShape();">Draw:</p> <select id="shapeType" name="shapeType"><option value="0">Circle with radius</option><option value="1">Square with side</option><option value="2">Diamond with side</option> </select> <input id="shapeSize" name="shapeSize" size="3" type="number" /> pixels,<br /> color #</p> <input id="shapeColor" title="3 or 6 hex digits" name="shapeColor" size="8" type="text" /> <input type="submit" value="Draw" /></form></div><p>Normalmente, vas a usar un canvas para mostrar gráficos que acompañen tu contenido.  Por ejemplo, decir &#8220;el propos&#8221; For example, saying “la media de un grupo de números es el &#8216;centro de gravedad&#8217; de este grupo&#8221; está bien, pero usar un elemento  <code>canvas</code> con un JavaScript que le permite al lector ingresar un grupo de números y mostrarle que significa el &#8220;punto de inflección&#8221; es mucho más efectivo.</p><div class="working-sample">Sorry, but your browser does not support<br /> <code>&lt;canvas&gt;</code> <img src='http://www.imgdigital.com.ar/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /></p><form id="itemForm" action="javascript:void(0)">Igrese números, separados por comas o espacios:</p> <input id="itemData" type="text" value="3,5,5,7,9,10" /> <input onclick="showData(); return false;" type="button" value="Display Data" /></form></div><p>Estos ejemplos ni siquiera empiezan a mostrar la finalidad  y capacidad del elemento <code>canvas</code>. Vea el  <a href="https://developer.mozilla.org/en/Canvas_tutorial">Tutorial de Canvas</a> en el sitio de Mozilla para una introducción mas profunda como asi también links de ejemplos.</p><h2>¿Qué estás esperando?</h2><p>Así como algunos desarrolladores tienen sus <a href="http://blog.halindrome.com/2009/07/w3c-you-ignorant-slut.html">reservas</a> acerca de la dirección en la que el HTML 5 está tomando en la web (y aunque comparto estas reservas), HTML 5 tiene suficientes razones para que valga la pena esplorarlo. Entonces, empezá a mirar lo que otras personas han hecho, experimentá vos mismo, y volvete un poco loco con las nuevas medidas de validación de formularios y las ventajas del canvas.</p><hr /><strong>Aprenda más</strong></p><div id="learnmore"><p>Temas relacionados: <a title="HTML and XHTML" href="http://www.alistapart.com/topics/topic/htmlxhtml/" target="_blank">HTML and XHTML</a></p></div><div class="discuss"><h2>Discuta esto</h2><p>Esto es interesante para vos? <a href="http://www.alistapart.com/comments/get-ready-for-html-5/" target="_blank">Unite a la discución »</a></p></div> ]]></content:encoded> <wfw:commentRss>http://www.imgdigital.com.ar/textos/preparate-para-el-html5/feed</wfw:commentRss> <slash:comments>0</slash:comments> </item> </channel> </rss>
<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Minified using disk: basic
Page Caching using disk: enhanced
Database Caching 1/9 queries in 0.001 seconds using disk: basic
Object Caching 406/413 objects using disk: basic

Served from: www.imgdigital.com.ar @ 2012-02-07 00:04:40 -->
