Migración HTML5
- Página anterior Elementos HTML5
- Página siguiente Geolocalización HTML5
Migración de HTML4 a HTML5
Este capítulo explica cómo migrar de una página HTML4 típica a una HTML5 típica.
Este capítulo muestra cómo convertir una página HTML4 existente en una página HTML5 sin dañar el contenido original y la estructura.
Notas:Puede usar las mismas técnicas para migrar de HTML4 y XHTML a HTML5.
HTML4 típico | HTML5 típico |
---|---|
<div id="header"> | <header> |
<div id="menu"> | <nav> |
<div id="content"> | <section> |
<div id="post"> | <article> |
<div id="footer"> | <footer> |
Página HTML4 típica
Ejemplo
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html lang="en"> <head> <meta http-equiv="Content-Type" content="text/html;charset=utf-8"> <title>HTML4</title> <style> body {font-family:Verdana,sans-serif;font-size:0.8em;} div#header,div#footer,div#content,div#post {border:1px solid grey;margin:5px;margin-bottom:15px;padding:8px;background-color:white;} div#header,div#footer {color:white;background-color:#444;margin-bottom:5px;} div#content {background-color:#ddd;} div#menu ul {margin:0;padding:0;} div#menu ul li {display:inline; margin:5px;} </style> </head> <body> <div id="header"> <h1>Monday Times</h1> </div> <div id="menu"> <ul> <li>News</li> <li>Sports</li> <li>Weather</li> </ul> </div> <div id="content"> <h2>Sección de Noticias</h2> <div id="post"> <h2>Artículo de Noticias</h2> <p>Ipsum lurum hurum turum ipsum lurum hurum turum ipsum lurum hurum turum ipsum lurum hurum turum.</p> <p>Ipsum lurum hurum turum ipsum lurum hurum turum ipsum lurum hurum turum ipsum lurum hurum turum.</p> </div> <div id="post"> <h2>Artículo de Noticias</h2> <p>Ipsum lurum hurum turum ipsum lurum hurum turum ipsum lurum hurum turum ipsum lurum hurum turum.</p> <p>Ipsum lurum hurum turum ipsum lurum hurum turum ipsum lurum hurum turum ipsum lurum hurum turum.</p> </div> </div> <div id="footer"> <p>© 2014 Monday Times. Todos los derechos reservados.</p> </div> </body> </html>
a HTML5 Doctype
Modificar el tipo de documento, de HTML4 doctype:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
Modificar el doctype a HTML5:
<!DOCTYPE html>
a la codificación de HTML5
Modificar la información de codificación, de HTML4:
<meta http-equiv="Content-Type" content="text/html;charset=utf-8">
Cambiar a HTML5:
<meta charset="utf-8">
Añadir shiv
Todos los navegadores modernos admiten elementos semánticos de HTML5.
Además, puede "enseñar" a los navegadores antiguos cómo manejar los "elementos desconocidos".
Añadir shiv para compatibilidad con Internet Explorer:
<![if lt IE 9]> <script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script> <![endif]-->
Notas:Lea más sobre shiv en la compatibilidad de navegadores HTML5.
Añadir CSS para elementos semánticos de HTML5
Vea los estilos CSS existentes:
div#header,div#footer,div#content,div#post { border:1px solid grey;margin:5px;margin-bottom:15px;padding:8px;background-color:white; } div#header,div#footer { color:white;background-color:#444;margin-bottom:5px; } div#content { background-color:#ddd; } div#menu ul { margin:0;padding:0; } div#menu ul li { display:inline; margin:5px; } Duplicar con estilos CSS iguales para elementos semánticos de HTML5: header,footer,section,article { border:1px solid grey;margin:5px;margin-bottom:15px;padding:8px;background-color:white; } header,footer { color:white;background-color:#444;margin-bottom:5px; } section { background-color:#ddd; } nav ul { margin:0;padding:0; } nav ul li { display:inline; margin:5px; }
por <header> y <footer> en HTML5
Cambiar los elementos <div> con id="header" y id="footer":
<div id="header"> <h1>Monday Times</h1> </div> . . . <div id="footer"> <p>© 2016 CodeW3C.com. Todos los derechos reservados.</p> </div>
Modifique a los elementos semánticos de HTML5 <header> y <footer>:
<header> <h1>Monday Times</h1> </header> . . . <footer> <p>© 2016 CodeW3C.com. Todos los derechos reservados.</p> </footer>
a HTML5 <nav>
Cambie el elemento <div> con id="menu":
<div id="menu"> <ul> <li>News</li> <li>Sports</a></li> <li>Weather</li> </ul> </div>
Modifique a los elementos semánticos de HTML5 <nav>:
<nav> <ul> <li>News</li> <li>Sports</a></li> <li>Weather</li> </ul> </nav>
a HTML5 <section>
Cambie el elemento <div> con id="content":
<div id="content"> . . . </div>
Modifique a los elementos semánticos de HTML5 <section>:
<section> . . . </section>
a HTML5 <article>
Cambie todos los elementos <div> con class="post":
<div class="post"> <h2>Artículo de Noticias</h2> <p>Ipsum lurum hurum turum ipsum lurum hurum turum ipsum lurum hurum turum ipsum lurum hurum turum.</p> </div>
Modifique a los elementos semánticos de HTML5 <article>:
<article> <h2>Artículo de Noticias</h2> <p>Ipsum lurum hurum turum ipsum lurum hurum turum ipsum lurum hurum turum ipsum lurum hurum turum.</p> </article>
Elimine estos estilos "ya no necesarios":
div#header,div#footer,div#content,div#post { border:1px solid grey;margin:5px;margin-bottom:15px;padding:8px;background-color:white; } div#header,div#footer { color:white;background-color:#444;margin-bottom:5px; } div#content { background-color:#ddd; } div#menu ul { margin:0;padding:0; } div#menu ul li { display:inline; margin:5px; }
Página típica de HTML5
Finalmente, puede eliminar la etiqueta <head>. Ya no es necesaria en HTML5:
Ejemplo
<!DOCTYPE html> <html lang="en"> <title>HTML5</title> <meta charset="utf-8"> <![if lt IE 9]> <script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"> </script> <![endif]--> <style> body { font-family:Verdana,sans-serif;font-size:0.8em; } header,footer,section,article { border:1px solid grey; margin:5px;margin-bottom:15px;padding:8px; background-color:white; } header,footer { color:white;background-color:#444;margin-bottom:5px; } section { background-color:#ddd; } nav ul { margin:0;padding:0; } nav ul li { display:inline; margin:5px; } </style> <body> <header> <h1>Monday Times</h1> </header> <nav> <ul> <li>News</li> <li>Sports</li> <li>Weather</li> </ul> </nav> <section> <h2>Sección de Noticias</h2> <div id="post"> <h2>Artículo de Noticias</h2> <p>Ipsum lurum hurum turum ipsum lurum hurum turum ipsum lurum hurum turum ipsum lurum hurum turum.</p> <p>Ipsum lurum hurum turum ipsum lurum hurum turum ipsum lurum hurum turum ipsum lurum hurum turum.</p> <p>Ipsum lurum hurum turum ipsum lurum hurum turum ipsum lurum hurum turum ipsum lurum hurum turum.</p> </div> <div id="post"> <h2>Artículo de Noticias</h2> <p>Ipsum lurum hurum turum ipsum lurum hurum turum ipsum lurum hurum turum ipsum lurum hurum turum.</p> <p>Ipsum lurum hurum turum ipsum lurum hurum turum ipsum lurum hurum turum ipsum lurum hurum turum.</p> <p>Ipsum lurum hurum turum ipsum lurum hurum turum ipsum lurum hurum turum ipsum lurum hurum turum.</p> </div> </section> <footer> <p>© 2014 Monday Times. Todos los derechos reservados.</p> </footer> </body> </html>
La diferencia entre <article>, <section> y <div>:
En la norma HTML5, la diferencia entre <article>, <section> y <div> es pequeña y puede ser confusa.
En la norma HTML5, el elemento <section> se sitúa como un bloque de elementos relacionados.
El elemento <article> se define como un bloque completamente autocontenedor de elementos relacionados.
El elemento <div> se define como un bloque de subelementos.
¿Cómo entenderlo?
En el ejemplo anterior, utilizamos <section> como contenedor de <articles> relacionados.
Sin embargo, también podemos usar <article> como contenedor de artículos.
Aquí hay algunos ejemplos diferentes:
El elemento <article> dentro de <article>: <article> <h2>Ciudades Famosas</h2> <article> <h2>London</h2> <p>London es la ciudad capital de Inglaterra. Es la ciudad más poblada del Reino Unido,</p> <p>con una área metropolitana de más de 13 millones de habitantes.</p> </article> <article> <h2>París</h2> <p>París es la capital y la ciudad más poblada de Francia.</p> </article> <article> <h2>Tokyo</h2> <p>Tokyo es la capital de Japón, el centro del Gran Área de Tokio,</p> y la área metropolitana más poblada del mundo.</p> </article> </article>
<article> con <div>:</article> <article> <h2>Ciudades Famosas</h2> <div class="city"> <h2>London</h2> <p>London es la ciudad capital de Inglaterra. Es la ciudad más poblada del Reino Unido,</p> <p>con una área metropolitana de más de 13 millones de habitantes.</p> </div> <div class="city"> <h2>París</h2> <p>París es la capital y la ciudad más poblada de Francia.</p> </div> <div class="city"> <h2>Tokyo</h2> <p>Tokyo es la capital de Japón, el centro del Gran Área de Tokio,</p> y la área metropolitana más poblada del mundo.</p> </div> </article>
<article> con <section> dentro de <div>:</article> <article> <section> <h2>Ciudades Famosas</h2> <div class="city"> <h2>London</h2> <p>London es la ciudad capital de Inglaterra. Es la ciudad más poblada del Reino Unido,</p> <p>con una área metropolitana de más de 13 millones de habitantes.</p> </div> <div class="city"> <h2>París</h2> <p>París es la capital y la ciudad más poblada de Francia.</p> </div> <div class="city"> <h2>Tokyo</h2> <p>Tokyo es la capital de Japón, el centro del Gran Área de Tokio,</p> y la área metropolitana más poblada del mundo.</p> </div> </section> <section> <h2>Países Famosos</h2> <div class="country"> <h2>Inglaterra</h2> <p>London es la ciudad capital de Inglaterra. Es la ciudad más poblada del Reino Unido,</p> <p>con una área metropolitana de más de 13 millones de habitantes.</p> </div> <div class="country"> <h2>Francia</h2> <p>París es la capital y la ciudad más poblada de Francia.</p> </div> <div class="country"> <h2>Japón</h2> <p>Tokyo es la capital de Japón, el centro del Gran Área de Tokio,</p> y la área metropolitana más poblada del mundo.</p> </div> </section> </article>
- Página anterior Elementos HTML5
- Página siguiente Geolocalización HTML5