Advertisement
  1. Code
  2. HTML5

¿Qué es HTML5?

Scroll to top
Read Time: 15 min

Spanish (Español) translation by Naudys Angulo (you can also view the original English article)

Crédito: Tópico Simple - ¿Qué es HTML5? Hacen fantásticos videos animados.

Introducción al HTML5

Bienvenido a Envato Tuts +!  Este tutorial proporciona una introducción general de HTML5. Si usted no ha oído hablar mucho de ello o simplemente quiere entender su relevancia, ha llegado al lugar correcto.

HTML5 es el último estándar para que los navegadores puedan mostrar e interactuar con páginas web. Aprobado en 2014, es la primera actualización de HTML en 14 años. En este día y edad, que es una vida entre actualizaciones.

El propósito de HTML5 es principalmente hacer que sea más fácil para los desarrolladores web y los creadores de navegadores a seguir estándares basados ​​en el consenso que hacen el cumplimiento más eficiente y potenciador. También está diseñado para proporcionar mejores experiencias de usuarios, más rápidas y más consistentes para los visitantes de escritorio y móviles.

Estas son algunas mejoras clave en HTML5:

  • Hay una estructura de elementos más sencilla y más directa a las páginas, que facilita la creación, el ajuste y la depuración--así como la creación de servicios automatizados que le ayudan a encontrar recursos importantes en la Web.
  • Proporciona elementos estándar para objetos multimedia comunes que anteriormente requerían plugins molestos para audio, video, etc. Estos complementos necesitan ser actualizados regularmente, es decir, descargas repetidas para administrar la seguridad.
  • Hay integración nativa con interfaces para aprovechar las modernas necesidades de la Web y de los dispositivos móviles. Uno de mis ejemplos favoritos de esto es la geolocalización, que le permite determinar las coordenadas GPS de un visitante web a través de su navegador. Esta función estaba previamente restringida a aplicaciones de teléfono equipadas con GPS.

Por ejemplo, a continuación se muestra un ejemplo de geolocalización HTML5 desde Construir su Puesta en Marcha con PHP: Geolocalización y Sitios Google (Tuts +):

What is HTML5 Geolocation ExampleWhat is HTML5 Geolocation ExampleWhat is HTML5 Geolocation Example

¿A quién le importa HTML5?

¿Es usted un Usuario Web o un Fan de YouTube?

HTML5 mejorará la velocidad, la facilidad de uso y la consistencia en toda la web. Sí, su experiencia en YouTube se convertirá gradualmente en excelente. Habrá menos actualizaciones de navegadores y complementos, menos amenazas de seguridad y sitios web más elegantes, más legibles y más rápidos.

¿Es Usted un Desarrollador Web?

HTML5 hace su vida increíblemente más fácil y amplía enormemente lo que es posible. Ésto también significa que usted podrá construir cosas y confiar más en los constructores del navegador para asegurar la consistencia. Esto significa un mucho menos condicional código de diseño.

¿Quieres Construir un Navegador Web?

Por un lado, tendrás una gran hoja de ruta en la especificación HTML5 detallando cómo y qué debes construir. Por otro lado, hay más que hacer y hacerlo bien. No será tan fácil diferenciar su navegador contra la niña grande navegadora de  los fabricantes.

¿Quiere Aprender Más?

Sólo un rápido recordatorio antes de profundizar! Intento participar en las discusiones a continuación. Si tiene una pregunta o sugerencia propuesta para un tutorial futuro, por favor, publique un comentario a continuación o póngase en contacto conmigo en Twitter @reifman.

Antecedentes de HTML5

¿De dónde viene HTML5?

HTML5 es la última en más de 20 años de estándares de programación de navegadores desde el lanzamiento de la web en 1991.

Historia del HTML

HTML surgió por primera vez como un estándar en 1993, y aquí está la línea de tiempo de las versiones de HTML aceptadas por los comités de normas:

  • HTML 2.0: 1995
  • HTML 4.0: 1997
  • HTML 4.01: 2000
  • HTML 5: 2014

Los Objetivos de HTML5

Según Wikipedia, HTML5 pretende consolidar versiones anteriores y tipos de documentos diferenciados como XHTML 1 y DOM Level 2 HTML:

[HTML5] amplía, mejora y racionaliza el marcado disponible para documentos, e introduce marcado y ...(APIs) para aplicaciones web complejas...HTML5 es también un candidato potencial para aplicaciones móviles multiplataforma. Muchas características se han diseñado con dispositivos de baja potencia, como smartphones y tabletas tomadas en consideración.

He aquí un resumen de cómo HacerUsoDe explicó los objetivos de HTML5:

  • Eliminar plugins como Flash para funciones comunes que todo el mundo necesita. Generar soporte nativo para cosas como audio, video, etc.
  • Reducir la necesidad de JavaScript y código extra con nuevos elementos nativos.
  • Proporcionar consistencia entre navegadores y dispositivos.
  • Hacer todo esto lo más transparente posible.
What is HTML5 Plugin Past for Video ElementWhat is HTML5 Plugin Past for Video ElementWhat is HTML5 Plugin Past for Video Element

Crédito de la imagen: Tópico Simple

¿Qué Nuevas Características Ofrece HTML5?

Mucho, le resulta! HTML5 proporciona una lista tan impresionante de nuevas capacidades que los principales navegadores aún no son totalmente compatibles incluso 18 meses después de su aceptación:

What is HTML5 Browser compatiblityWhat is HTML5 Browser compatiblityWhat is HTML5 Browser compatiblity

Crédito de la imagen: PHPFlow

También hay este arco iris visual interactivo en HTML5Readiness. Coloca el cursor sobre distintos arcos y verás qué características son compatibles con los navegadores:

What is HTML5 Compatibility RainbowWhat is HTML5 Compatibility RainbowWhat is HTML5 Compatibility Rainbow

Es divertido, pero otras tablas en otros sitios pueden ser más funcionalmente intuitivas de usar.

Indices de adopción de HTML5

En 2011, Wikipedia reportó que cerca de un tercio de los 100 sitios web más importantes soportaban HTML5. En agosto de 2013, alrededor de 153 de los sitios web Fortune 500 lo hicieron.

He aquí una visualización de la inmensidad de las capacidades de HTML5:

What is HTML5 Feature OverviewWhat is HTML5 Feature OverviewWhat is HTML5 Feature Overview

Crédito de la imagen: Wikipedia

Los Nuevos Elementos de HTML5

Los elementos más básicos de HTML5 facilitan la creación de páginas web y la depuración de su código o de otros. También facilita que los servicios automatizados exploren la web y comprendan la importancia de los diferentes componentes de la página.

Para el diseño de página y características claves, ahora hay elementos específicos como:  y para que los navegadores nativos administren la reproducción de cada uno. No más complementos y actualizaciones de seguridad para este específicamente para permitirte dibujar gráficos en el uso de un lenguaje de scripting separado para colocar contenido externo o aplicaciones en la páginaAquí está un esquema visual agradable de éstos por Smashing Magazine:

  • <header> y <footer>
  • <nav> para todos los tipos de menús
  • <aside> para barras laterales o contenido relacionado cercano
  • <article> donde el contenido va tal como una entrada en el blog
  • <section> similar a <div> pero más orientado al contenido
  • <audio> y <video> etiquetas para que los navegadores nativos administren la reproducción de cada uno. No más complementos y actualizaciones de seguridad para este
  • <canvas> específicamente para permitirte dibujar gráficos en el uso de un lenguaje de scripting separado
  • <embed> para colocar contenido externo o aplicaciones en la página

Aquí está un esquema visual agradable de éstos por Smashing Magazine:

What is HTML5 New ElementsWhat is HTML5 New ElementsWhat is HTML5 New Elements

Estas son algunas de las características más avanzadas de HTML5, incluyendo la integración de API, lo que convierte la codificación en JavaScript en acciones sofisticadas más fáciles y más consistentes en los navegadores:

HTML5 y El futuro de la Web ofrece otra guía para estas características. Aquí está uno de sus aportes-ellos aprecian mucho la caché de la aplicación:

Google Gears nos dio almacenamiento de datos sin conexión y Flash nos introdujo en el poder de la caché de aplicaciones (Pandora lo usa para guardar su información de inicio de sesión). Con HTML5, estas capacidades ya están disponibles para usar directamente en el lenguaje y pueden ampliarse fácilmente con JavaScript.

¿Necesita ver qué características son compatibles con los navegadores? HTML5Test tiene una útil evaluación interactiva para las características y el soporte para el navegador:

What is HTML5 Feature Compatibility Browser MatrixWhat is HTML5 Feature Compatibility Browser MatrixWhat is HTML5 Feature Compatibility Browser Matrix

Hay tantas nuevas características que es imposible catalogar todas ellas aquí. Revise los enlaces de recursos en la parte inferior de este tutorial para obtener más recursos que recomiendo.

Algunos Pocos Ejemplos de HTML5 en Acción

Echemos un vistazo a algunos ejemplos interesantes de HTML5 en acción.

Una Plantilla de página HTML5

La simplicidad de HTML5 es clara en sus nuevos diseños de página. Los elementos más orientados al contenido hacen que el código de la página sea más fácil de comprender y depurar. He aquí un ejemplo sencillo que construí con el proyecto HTML5-Reset:

1
<!doctype html>
2
3
<html lang="en">
4
<head>
5
  <meta charset="utf-8">
6
7
  <title></title>
8
    <meta name="author" content="" />
9
  <meta name="description" content="" />
10
11
 <link rel="stylesheet" href="assets/css/style.css" />
12
13
  <!--[if lt IE 9]>

14
  <script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script>

15
  <![endif]-->
16
</head>
17
18
<body>
19
    <header>
20
    	<h1><a href="/">Page Title</a></h1>
21
		<nav>
22
			<ol>
23
				<li><a href="">Nav Link 1</a></li>
24
				<li><a href="">Nav Link 2</a></li>
25
				<li><a href="">Nav Link 3</a></li>
26
			</ol>
27
		</nav>
28
	</header>
29
	<article>
30
		<h1>Article Header</h1>
31
		<p>Etiam pretium odio eu mi convallis vitae varius neque pharetra. Nulla vestibulum nisi ut sem cursus sed mattis nisi egestas.</p>
32
33
		<h2>Article Subhead</h2>
34
		<p>Vestibulum lacus erat, volutpat vel dignissim at, fringilla ut felis.</p>
35
36
	</article>
37
38
	<aside>
39
		<h2>Sidebar Content</h2>
40
	</aside>
41
42
	<footer>
43
		<p><small>&copy; Copyright Your Name Here 2014. All Rights Reserved.</small></p>
44
	</footer>
45
46
</div>
47
48
  <script src="scripts/js/scripts.js"></script>
49
</body>
50
</html>

Observe que hay una etiqueta más simple de doctype, etiquetas de enlace y etiquetas de script. El script HTML5Shiv proporciona soporte heredado para versiones de Internet Explorer antes de 9.x.

Si desea ver algunos otros enfoques, consulte la Plantilla HTML5, una página HTML5 de código abierto más amplia.

El Elemento de Video y los Reproductores

Aquí hay un ejemplo de vídeo de W3Schools que muestra el código fuente a la izquierda y el reproductor resultante a la derecha:

What is HTML5 Video ExampleWhat is HTML5 Video ExampleWhat is HTML5 Video Example

No es necesario un complemento y no hay actualizaciones.

Formularios

HTML5 tiene una gran variedad de mejoras a los formularios y elementos de entrada para hacer la programación web más fácil y la experiencia del usuario mucho mejor. Por ejemplo, los elementos de entrada ahora soportan una variedad de validaciones integradas. Aquí hay una validación para números dentro de un rango específico:

What is HTML5 Input Element ExampleWhat is HTML5 Input Element ExampleWhat is HTML5 Input Element Example

Aquí hay un par de excelentes tutoriales para ir un paso más profundo en formularios en HTML5 Doctor:

Por ejemplo, he aquí una demostración del elemento de rango mostrado en un navegador Chrome:

What is HTML5 Range element exampleWhat is HTML5 Range element exampleWhat is HTML5 Range element example

Gráficos Vectoriales Escalables (SVG)

En HTML5, usted puede animar más fácilmente elementos con JavaScript y HTML5. Aquí hay un simple reloj animado que es escalable (cambia el zoom):

What is HTML5 SVG Animated Clock DemoWhat is HTML5 SVG Animated Clock DemoWhat is HTML5 SVG Animated Clock Demo

Aquí está un ejemplo del código para la demo integrando JavaScript:

1
<!DOCTYPE html>
2
<html lang="en">
3
<head>
4
<meta charset=utf-8>
5
<meta name="viewport" content="width=620">
6
<title>HTML5 Demo: SVG clock animation</title>
7
<link rel="stylesheet" href="css/html5demos.css">
8
<script src="js/h5utils.js"></script></head>
9
<body>
10
<section id="wrapper">
11
<div id="carbonads-container"><div class="carbonad"><div id="azcarbon"></div><script type="text/javascript">var z = document.createElement("script"); z.type = "text/javascript"; z.async = true; z.src = "http://engine.carbonads.com/z/14060/azcarbon_2_1_0_VERT"; var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(z, s);</script></div></div>
12
    <header>
13
      <h1>SVG clock animation</h1>
14
    </header>
15
16
<style>
17
  /* any custom styles live here */
18
  line {
19
  stroke-width: 3px;
20
  stroke: black;
21
  }      
22
</style>
23
<article>
24
  <p>SVG clock animation by <a href="http://twitter.com/davidbasoko">David Basoko</a>.</p>
25
    <div>
26
      <label for="zoominput">Zoom</label>
27
      <select id="rangeinput" onchange="CLOCK.zoom();">
28
        <option value="1" selected="selected">1x</option>
29
        <option value="2">2x</option>
30
        <option value="3">3x</option>
31
        <option value="4">4x</option>
32
        <option value="5">5x</option>
33
      </select>
34
    </div>
35
    <div>
36
      <svg xmlns="http://www.w3.org/2000/svg" width="1000" height="1000" >
37
        <g>
38
          <circle id="circle" style="stroke: black; fill: #f8f8f8;" cx="100" cy="100" r="100"/>
39
          <line id="hour0" x1="100" y1="10"  x2="100" y2="0"/>
40
          <line id="hour1" x1="150" y1="13"  x2="145" y2="22"/>
41
          <line id="hour2" x1="187" y1="50"  x2="178" y2="55"/>
42
          <line id="hour3" x1="190" y1="100" x2="200" y2="100"/>
43
          <line id="hour4" x1="187" y1="150" x2="178" y2="145"/>
44
          <line id="hour5" x1="150" y1="187" x2="145" y2="178"/>
45
          <line id="hour6" x1="100" y1="190" x2="100" y2="200"/>
46
          <line id="hour7" x1="50"  y1="187" x2="55"  y2="178"/>
47
          <line id="hour8" x1="13"  y1="150" x2="22"  y2="145"/>
48
          <line id="hour9" x1="0"   y1="100" x2="10"  y2="100"/>
49
          <line id="hour10" x1="13"  y1="50"  x2="22"  y2="55" />
50
          <line id="hour11" x1="50"  y1="13"  x2="55"  y2="22" />
51
        </g>
52
        <g>
53
          <line x1="100" y1="100" x2="100" y2="45" style="stroke-width: 6px; stroke: green;" id="hourhand"/>
54
          <line x1="100" y1="100" x2="100" y2="15" style="stroke-width: 4px; stroke: blue;"  id="minutehand"/>
55
          <line x1="100" y1="100" x2="100" y2="5"  style="stroke-width: 2px; stroke: red;"   id="secondhand"/>
56
        </g>
57
      </svg>
58
    </div>
59
60
</article>
61
<script>
62
var CLOCK = (function() {
63
    var drawClock = function() {
64
        var INITIAL_R = 100;
65
66
        var zoom = document.getElementById("rangeinput").value;
67
        
68
        var r = INITIAL_R * zoom;
69
70
        // Draw Circle

71
        var circle = document.getElementById("circle");
72
        circle.setAttribute('r', r);
73
        circle.setAttribute('cx', r);
74
        circle.setAttribute('cy', r);
75
76
        // Draw Hours

77
        for(var i = 0; i < 12; i++) {
78
            var hour = document.getElementById("hour"+i);
79
            var degrees = i * 30;
80
            hour.setAttribute('x1', getX(degrees, r, 0.9)); // 90% of radio's length.

81
            hour.setAttribute('y1', getY(degrees, r, 0.9)); // 90% of radio's length.

82
            hour.setAttribute('x2', getX(degrees, r));
83
            hour.setAttribute('y2', getY(degrees, r));
84
        }
85
86
        // Draw hands

87
        drawHands();
88
    };
89
90
    var drawHands = function() {
91
        // Constants for hand's sizes.

92
        var SECONDS_HAND_SIZE = 0.95,
93
        MINUTES_HAND_SIZE = 0.85,
94
        HOURS_HAND_SIZE = 0.55;
95
96
        var circle = document.getElementById("circle");
97
98
        // Clock Circle's Properties

99
        var r = circle.getAttribute('r'),
100
        cx = parseInt(circle.getAttribute('cx')),
101
        cy = parseInt(circle.getAttribute('cy'));
102
103
        // Current time.

104
        var currentTime = new Date();
105
106
        // Draw Hands

107
        drawHand(document.getElementById("secondhand"),
108
                 currentTime.getSeconds(),
109
                 SECONDS_HAND_SIZE,
110
                 6);
111
        drawHand(document.getElementById("minutehand"),
112
                 currentTime.getMinutes(),
113
                 MINUTES_HAND_SIZE,
114
                 6);
115
        drawHand(document.getElementById("hourhand"),
116
                 currentTime.getHours(),
117
                 HOURS_HAND_SIZE,
118
                 30);
119
        
120
        function drawHand(hand, value, size, degrees) {
121
            var deg = degrees * value;
122
            x2 = getX(deg, r, size, cx),
123
            y2 = getY(deg, r, size, cy);
124
            
125
            hand.setAttribute('x1', cx);
126
            hand.setAttribute('y1', cy); 
127
            hand.setAttribute('x2', x2);
128
            hand.setAttribute('y2', y2); 
129
        }
130
    };
131
132
    /*

133
     * Get a Point X value.

134
     * degress. Angle's degrees.

135
     * r. Circle's radio.

136
     * adjust. Percent of length.

137
     * x. Start of X point.

138
     */
139
    function getX(degrees, r, adjust, x) {
140
        var x = x || r, 
141
        adj = adjust || 1;
142
        return x + r * adj * Math.cos(getRad(degrees));
143
    }
144
145
    /*

146
     * Get a Point Y value.

147
     * degress. Angle's degrees.

148
     * r. Circle's radio.

149
     * adjust. Percent of length.

150
     * x. Start of Y point.

151
     */   
152
    function getY(degrees, r, adjust, y) {
153
        var y = y || r,
154
        adj = adjust || 1;
155
        return y + r * adj * Math.sin(getRad(degrees));
156
    }
157
158
    // Convert from degrees to radians.

159
    function getRad(degrees) {
160
        var adjust = Math.PI / 2;
161
        return (degrees * Math.PI / 180) - adjust;
162
    }
163
        
164
    return {
165
        init: function() {
166
            drawClock();
167
            setInterval(drawHands, 1000);
168
        },
169
        zoom: function() {
170
            drawClock();
171
        }
172
    };
173
})();
174
CLOCK.init();
175
</script>
176
<a id="html5badge" href="http://www.w3.org/html/logo/">
177
<img src="http://www.w3.org/html/logo/badge/html5-badge-h-connectivity-device-graphics-multimedia-performance-semantics-storage.png" width="325" height="64" alt="HTML5 Powered with Connectivity / Realtime, Device Access, Graphics, 3D & Effects, Multimedia, Performance & Integration, Semantics, and Offline & Storage" title="HTML5 Powered with Connectivity / Realtime, Device Access, Graphics, 3D & Effects, Multimedia, Performance & Integration, Semantics, and Offline & Storage">
178
</a>
179
    <footer><a href="/">HTML5 demos</a>/<a id="built" href="http://twitter.com/rem">@rem built this</a>/<a href="#view-source">view source</a></footer> 
180
</section>
181
<a href="http://github.com/remy/html5demos"><img style="position: absolute; top: 0; left: 0; border: 0;" src="http://s3.amazonaws.com/github/ribbons/forkme_left_darkblue_121621.png" alt="Fork me on GitHub" /></a>
182
<script src="js/prettify.packed.js"></script>
183
<script>
184
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
185
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
186
</script>
187
</body>
188
</html>

¿Que sigue?

Espero que hayas disfrutado de esta visión general del surgimiento y el beneficio de HTML5. Si desea explorar más HTML5, hay dos recursos más que me gustaría sugerir:

  • Introducción a HTML5: Una excelente introducción a los avances de HTML5 para desarrolladores que desean un rápido recorrido de todos los nuevos elementos.
  • Demos HTML5 y Ejemplos: Perfecto para mostrarle un menú organizado de una variedad de demos HTML5, mostrándole lo que es posible.

He aquí un ejemplo de las demos navegables en Demos HTML5 (no todas funcionaron para mí):

What is HTML5 Demo site at HTML5TestcomWhat is HTML5 Demo site at HTML5TestcomWhat is HTML5 Demo site at HTML5Testcom

Si eres un administrador de sitio de WordPress como muchos lectores de Envato Tuts +, es posible que desee evaluar futuros temas para su cumplimiento con HTML5. El desarrollo basado en estándares con un soporte de navegador consistente hace que el desarrollo web sea mucho más fácil para muchos de nosotros y reducirá el número de errores a los que se enfrentan nuestros clientes al mismo tiempo que proporciona cada vez mejores experiencias de usuario.

En general, he estado bastante impresionado con HTML5. Y parece que seguirá evolucionando más rápido que cada 14 años.

Además, si está buscando otras utilidades para ayudarle a desarrollar sus habilidades HTML5, no olvide ver lo que tenemos disponible en Envato Market.

Me encantaría escuchar más acerca de sus comentarios sobre HTML5 y sugerencias sobre temas futuros sobre los que desee obtener más información. Por favor no dude en publicar sus preguntas y comentarios a continuación. También puede ponerse en contacto conmigo en Twitter @reifman directamente. Para ver otros tutoriales que he escrito, navegue por mi página Envato Tuts + instructor.

Enlaces Relacionados

Debido a que hay tantos recursos útiles para HTML5, he incluido una ayuda adicional de algunos de los que considero más útiles:

Advertisement
Did you find this post useful?
Want a weekly email summary?
Subscribe below and we’ll send you a weekly email summary of all new Code tutorials. Never miss out on learning about the next big thing.
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.