2. 2
HTML 5
●
Referencias históricas. Evolución de HTML y XHTML
●
¿Qué aporta HTML 5?
●
Estructura de una página web. Semántica
●
Diferencias entre HTML 5 y HTML 4.01 / XHTML 1.0
●
Formularios
●
Incorporación de elementos multimedia
●
Más etiquetas incorporadas en HTML 5
●
Webs offline
●
¿Únicamente para crear webs?
3. 3
Referencias históricas.
Evolución de HTML y XHTML
HTML
HTML
HTML 5.0
- Opera y Mozilla proponen HTML5
HTML 2.0
- Apple, Opera y Mozilla crean WHATWG
para desarrollar HTML5
HTML 3.0
- W3C empieza a trabajar con
WHATWG en HTML5
HTML 3.2
- Primer borrador de HTML5
- 1ª
versión candidata
HTML 4.0
- 2ª
versión candidata
HTML 4.01
XHTML 1.0
XHTML
XHTML 1.1
XHTML 2.0
- Incompatible con todo lo anterior
1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014
4. 4
¿Qué aporta HTML 5?
Algunas reglas establecidas para
el desarrollo de HTML 5
●
●
●
●
●
●
Las nuevas características deben
basarse en HTML, CSS, DOM y
JavaScript
Reducir la necesidad de plugins
externos
Mejor manejo de errores
Algunas de las novedades más
interesantes en HTML 5
●
Nuevas etiquetas para dar más
significado a las páginas
(semántica)
●
Más control en los formularios
●
Almacenamiento offline
●
Soporte para audio y vídeo
Más etiquetas para reemplazar
scripting
●
Debe ser independiente del
dispositivo
●
Sockets web
●
Doctype sencillo
●
XHTML 5
El proceso de desarrollo es
visible para el público
http://www.w3.org/TR/html5/
http://www.w3.org/html/wg/drafts/html/master/Overview.html
El elemento canvas para crear
dibujos y animaciones
http://www.w3.org/TR/html5/introduction.html#html-vs-xhtml
5. 5
Estructura de una página web.
Semántica
Etiquetas para estructurar
la web
●
<header>
●
<main>
●
<nav>
●
<section>
●
<article>
●
<aside>
●
<footer>
Advertencias:
http://html5doctor.com/avoiding-common-html5-mistakes/
http://www.w3.org/TR/html5/sections.html#the-section-element
http://html5doctor.com/aside-revisited/
6. 6
Estructura de una página web.
Semántica
Etiquetas para estructurar
la web
●
●
<header>
Encabezados
●
Títulos jerarquizados
<main>
●
<nav>
●
<article>
●
<aside>
●
●
<section>
●
<h1> ··· <h6>
<header>
<footer>
Advertencias:
http://html5doctor.com/avoiding-common-html5-mistakes/
http://www.w3.org/TR/html5/sections.html#the-section-element
http://html5doctor.com/aside-revisited/
Encabezado del documento.
Especifica una introducción o
elementos de navegación
●
Sectioning content:
article, aside, nav, section
HTML5 outliner: http://gsnedders.html5.org/outliner
Advertencia: http://html5doctor.com/the-hgroup-element/
7. 7
Estructura de una página web.
Semántica
Etiquetas para estructurar
la web
●
<header>
●
<main>
●
<nav>
●
<section>
●
<article>
●
<aside>
●
<footer>
Advertencias:
http://html5doctor.com/avoiding-common-html5-mistakes/
http://www.w3.org/TR/html5/sections.html#the-section-element
http://html5doctor.com/aside-revisited/
8. 8
Estructura de una página web.
Semántica
header
Etiquetas para estructurar
la web
●
<header>
●
<main>
●
<nav>
●
<section>
●
<article>
●
<aside>
●
<footer>
Advertencias:
http://html5doctor.com/avoiding-common-html5-mistakes/
http://www.w3.org/TR/html5/sections.html#the-section-element
http://html5doctor.com/aside-revisited/
9. 9
Estructura de una página web.
Semántica
header
Etiquetas para estructurar
la web
●
<header>
●
<main>
●
<nav>
●
<section>
●
<article>
●
<aside>
●
<footer>
Advertencias:
http://html5doctor.com/avoiding-common-html5-mistakes/
http://www.w3.org/TR/html5/sections.html#the-section-element
http://html5doctor.com/aside-revisited/
10. 10
Estructura de una página web.
Semántica
header
Etiquetas para estructurar
la web
●
<header>
●
<main>
●
<nav>
●
<section>
●
<article>
●
<aside>
●
<footer>
h1
Advertencias:
http://html5doctor.com/avoiding-common-html5-mistakes/
http://www.w3.org/TR/html5/sections.html#the-section-element
http://html5doctor.com/aside-revisited/
11. 11
Estructura de una página web.
Semántica
header
Etiquetas para estructurar
la web
●
<header>
●
<main>
h1
●
<nav>
●
<section>
●
<article>
●
<aside>
●
<footer>
Advertencias:
http://html5doctor.com/avoiding-common-html5-mistakes/
http://www.w3.org/TR/html5/sections.html#the-section-element
http://html5doctor.com/aside-revisited/
nav
12. 12
Estructura de una página web.
Semántica
header
Etiquetas para estructurar
la web
●
<header>
●
<main>
●
<nav>
●
<section>
●
<article>
●
<aside>
●
<footer>
Advertencias:
http://html5doctor.com/avoiding-common-html5-mistakes/
http://www.w3.org/TR/html5/sections.html#the-section-element
http://html5doctor.com/aside-revisited/
h1
nav
13. 13
Estructura de una página web.
Semántica
header
main
Etiquetas para estructurar
la web
●
<header>
●
<main>
●
<nav>
●
<section>
●
<article>
●
<aside>
●
<footer>
Advertencias:
http://html5doctor.com/avoiding-common-html5-mistakes/
http://www.w3.org/TR/html5/sections.html#the-section-element
http://html5doctor.com/aside-revisited/
h1
nav
14. 14
Estructura de una página web.
Semántica
header
main
Etiquetas para estructurar
la web
●
<header>
●
<main>
●
<nav>
●
<section>
●
<article>
●
<aside>
●
<footer>
Advertencias:
http://html5doctor.com/avoiding-common-html5-mistakes/
http://www.w3.org/TR/html5/sections.html#the-section-element
http://html5doctor.com/aside-revisited/
h2
h1
nav
15. 15
Estructura de una página web.
Semántica
header
main
Etiquetas para estructurar
la web
●
<header>
●
<main>
●
<nav>
●
<section>
●
<article>
●
<aside>
●
<footer>
Advertencias:
http://html5doctor.com/avoiding-common-html5-mistakes/
http://www.w3.org/TR/html5/sections.html#the-section-element
http://html5doctor.com/aside-revisited/
h1
h2
div “slider”
nav
16. 16
Estructura de una página web.
Semántica
header
main
Etiquetas para estructurar
la web
●
<main>
●
<nav>
●
<section>
●
<article>
●
<aside>
●
<footer>
h2
div “slider”
<header>
●
h1
Advertencias:
http://html5doctor.com/avoiding-common-html5-mistakes/
http://www.w3.org/TR/html5/sections.html#the-section-element
http://html5doctor.com/aside-revisited/
section “definitions”
nav
17. 17
Estructura de una página web.
Semántica
header
main
Etiquetas para estructurar
la web
●
<main>
●
<nav>
●
<section>
●
<article>
●
<aside>
●
<footer>
h2
div “slider”
<header>
●
h1
Advertencias:
http://html5doctor.com/avoiding-common-html5-mistakes/
http://www.w3.org/TR/html5/sections.html#the-section-element
http://html5doctor.com/aside-revisited/
section “definitions”
nav
18. 18
Estructura de una página web.
Semántica
header
main
article
Etiquetas para estructurar
la web
●
<main>
●
<nav>
●
<section>
●
<article>
●
<aside>
●
<footer>
h2
div “slider”
<header>
●
h1
Advertencias:
http://html5doctor.com/avoiding-common-html5-mistakes/
http://www.w3.org/TR/html5/sections.html#the-section-element
http://html5doctor.com/aside-revisited/
section “definitions”
nav
19. 19
Estructura de una página web.
Semántica
header
main
article
Etiquetas para estructurar
article
la web
●
<main>
●
<nav>
●
<section>
●
<article>
●
<aside>
●
<footer>
nav
h2
div “slider”
article
<header>
●
h1
Advertencias:
http://html5doctor.com/avoiding-common-html5-mistakes/
http://www.w3.org/TR/html5/sections.html#the-section-element
http://html5doctor.com/aside-revisited/
section “definitions”
20. 20
Estructura de una página web.
Semántica
header
main
article
h1
Etiquetas para estructurar
article
la web
h1
●
<main>
●
<nav>
●
<section>
●
<article>
●
<aside>
●
<footer>
nav
h2
div “slider”
article
h1
<header>
●
h1
Advertencias:
http://html5doctor.com/avoiding-common-html5-mistakes/
http://www.w3.org/TR/html5/sections.html#the-section-element
http://html5doctor.com/aside-revisited/
section “definitions”
21. 21
Estructura de una página web.
Semántica
header
main
Etiquetas para estructurar
la web
●
<main>
nav
h2
div “slider”
<header>
●
h1
●
<nav>
●
<section>
●
<article>
●
<aside>
●
<footer>
Advertencias:
http://html5doctor.com/avoiding-common-html5-mistakes/
http://www.w3.org/TR/html5/sections.html#the-section-element
http://html5doctor.com/aside-revisited/
section “definitions”
article
article
article
22. 22
Estructura de una página web.
Semántica
header
main
Etiquetas para estructurar
la web
●
<main>
nav
h2
div “slider”
<header>
●
h1
●
<nav>
●
<section>
●
<article>
●
<aside>
●
<footer>
Advertencias:
http://html5doctor.com/avoiding-common-html5-mistakes/
http://www.w3.org/TR/html5/sections.html#the-section-element
http://html5doctor.com/aside-revisited/
section “definitions”
article
aside
article
article
23. 23
Estructura de una página web.
Semántica
header
main
Etiquetas para estructurar
la web
●
<main>
nav
h2
div “slider”
<header>
●
h1
●
<nav>
●
<section>
●
<article>
●
<aside>
●
<footer>
Advertencias:
http://html5doctor.com/avoiding-common-html5-mistakes/
http://www.w3.org/TR/html5/sections.html#the-section-element
http://html5doctor.com/aside-revisited/
section “definitions”
article
aside
section “news”
article
article
24. 24
Estructura de una página web.
Semántica
header
main
Etiquetas para estructurar
la web
●
<main>
nav
h2
div “slider”
<header>
●
h1
●
<section>
article
<nav>
●
section “definitions”
●
<article>
●
<aside>
●
<footer>
Advertencias:
http://html5doctor.com/avoiding-common-html5-mistakes/
http://www.w3.org/TR/html5/sections.html#the-section-element
http://html5doctor.com/aside-revisited/
aside
section “news”
article
article
25. 25
Estructura de una página web.
Semántica
header
main
Etiquetas para estructurar
la web
h1
nav
h2
div “slider”
article
●
<header>
●
<main>
●
<section>
article
<nav>
●
section “definitions”
●
<article>
●
<aside>
●
<footer>
Advertencias:
http://html5doctor.com/avoiding-common-html5-mistakes/
http://www.w3.org/TR/html5/sections.html#the-section-element
http://html5doctor.com/aside-revisited/
aside
section “news”
article
article
26. 26
Estructura de una página web.
Semántica
header
main
Etiquetas para estructurar
la web
h1
nav
h2
div “slider”
article
header
●
<header>
●
<main>
●
<section>
article
<nav>
●
section “definitions”
●
<article>
●
<aside>
●
<footer>
Advertencias:
http://html5doctor.com/avoiding-common-html5-mistakes/
http://www.w3.org/TR/html5/sections.html#the-section-element
http://html5doctor.com/aside-revisited/
aside
section “news”
article
article
27. 27
Estructura de una página web.
Semántica
header
main
Etiquetas para estructurar
la web
h1
nav
h2
div “slider”
article
header
●h1
<header>
●
<main>
●
<section>
article
<nav>
●
section “definitions”
●
<article>
●
<aside>
●
<footer>
Advertencias:
http://html5doctor.com/avoiding-common-html5-mistakes/
http://www.w3.org/TR/html5/sections.html#the-section-element
http://html5doctor.com/aside-revisited/
aside
section “news”
article
article
28. 28
Estructura de una página web.
Semántica
header
main
Etiquetas para estructurar
la web
article
header
●h1
<header>
●
h2
div “slider”
article
header
h1
h1
<section>
section “definitions”
article
<nav>
●
●
<article>
●
<aside>
●
nav
article
header
<main>
●
h1
<footer>
Advertencias:
http://html5doctor.com/avoiding-common-html5-mistakes/
http://www.w3.org/TR/html5/sections.html#the-section-element
http://html5doctor.com/aside-revisited/
aside
section “news”
article
article
29. 29
Estructura de una página web.
Semántica
header
main
Etiquetas para estructurar
la web
●
<main>
nav
h2
div “slider”
<header>
●
h1
●
<nav>
●
<section>
●
<article>
●
<aside>
●
<footer>
Advertencias:
http://html5doctor.com/avoiding-common-html5-mistakes/
http://www.w3.org/TR/html5/sections.html#the-section-element
http://html5doctor.com/aside-revisited/
section “definitions”
article
article
article
article
article
aside
section “news”
article
30. 30
Estructura de una página web.
Semántica
header
main
Etiquetas para estructurar
la web
●
<main>
nav
h2
div “slider”
<header>
●
h1
●
<nav>
●
<section>
●
<article>
●
<aside>
●
section “definitions”
article
article
article
article
aside
section “news”
article
<footer>
footer
Advertencias:
http://html5doctor.com/avoiding-common-html5-mistakes/
http://www.w3.org/TR/html5/sections.html#the-section-element
http://html5doctor.com/aside-revisited/
article
31. 31
Estructura de una página web.
Semántica
header
main
Etiquetas para estructurar
la web
●
nav
h2
div “slider”
<header>
●
h1
<main>
●
<nav>
●
article
section “definitions”
article
<section>
●
<article>
●
<aside>
●
aside
section “news”
article
<footer>
footer
Advertencias:
http://html5doctor.com/avoiding-common-html5-mistakes/
http://www.w3.org/TR/html5/sections.html#the-section-element
http://html5doctor.com/aside-revisited/
article
article
article
32. 32
Estructura de una página web.
Semántica
header
main
Etiquetas para estructurar
la web
section
●
nav
h2
div “slider”
<header>
●
h1
<main>
●
<nav>
●
article
section “definitions”
article
<section>
●
<article>
●
<aside>
●
aside
section “news”
article
<footer>
footer
Advertencias:
http://html5doctor.com/avoiding-common-html5-mistakes/
http://www.w3.org/TR/html5/sections.html#the-section-element
http://html5doctor.com/aside-revisited/
article
article
article
33. 33
Estructura de una página web.
Semántica
header
main
Etiquetas para estructurar
la web
section
●
<header>
●
h1
nav
h2
div “slider”
h1
<main>
●
<nav>
●
article
section “definitions”
article
<section>
●
<article>
●
<aside>
●
aside
section “news”
article
<footer>
footer
Advertencias:
http://html5doctor.com/avoiding-common-html5-mistakes/
http://www.w3.org/TR/html5/sections.html#the-section-element
http://html5doctor.com/aside-revisited/
article
article
article
34. 34
Estructura de una página web.
Semántica
header
main
Etiquetas para estructurar
la web
section
●
<header>
●
h1
h1
nav
h2
div “slider”
section
h1
section
h1
<main>
●
<nav>
●
article
section “definitions”
article
<section>
●
<article>
●
<aside>
●
aside
section “news”
article
<footer>
footer
Advertencias:
http://html5doctor.com/avoiding-common-html5-mistakes/
http://www.w3.org/TR/html5/sections.html#the-section-element
http://html5doctor.com/aside-revisited/
article
article
article
35. 35
Estructura de una página web.
Semántica
header
main
Etiquetas para estructurar
la web
●
<main>
nav
h2
div “slider”
<header>
●
h1
●
<nav>
●
<section>
●
<article>
●
<aside>
●
section “definitions”
article
article
article
article
article
aside
section “news”
article
<footer>
footer
Advertencias:
http://html5doctor.com/avoiding-common-html5-mistakes/
http://www.w3.org/TR/html5/sections.html#the-section-element
http://html5doctor.com/aside-revisited/
section
section
section
36. 36
Diferencias entre HTML 5 y
HTML 4.01 / XHTML 1.0
Estructura HTML 5
<!DOCTYPE HTML>
<html lang="es">
<head>
<meta charset="utf-8" />
<title>Título del sitio</title>
</head>
<body>
<div id="contenedor">
<header id="cabecera">
<!-- Contenido de la cabecera -->
<nav id="menuPrincipal"><!-- Menú principal --></nav>
</header>
<aside id="colIzq">
<!-- Contenido de la columna izquierda -->
</aside>
<main id="colCentro">
<!-- Contenido de la columna central -->
<article>
<!-- Artículo 1 -->
</article>
<article>
<!-- Artículo 2 -->
</article>
</main>
<footer id="pie"><!-- Contenido del pie --></footer>
</div>
</body>
</html>
Estructura HTML 4.01 / XHTML 1.0
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="es">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf8" />
<title>Título del sitio</title>
</head>
<body>
<div id="contenedor">
<div id="cabecera">
<!-- Contenido de la cabecera -->
<div id="menuPrincipal"><!-- Menú principal --></div>
</div>
<div id="colIzq">
<!-- Contenido de la columna izquierda -->
</div>
<div id="colCentro">
<!-- Contenido de la columna central -->
<div class="articulo">
<!-- Artículo 1 -->
</div>
<div class="articulo">
<!-- Artículo 2 -->
</div>
</div>
<div id="pie"><!-- Contenido del pie --></div>
</div>
</body>
</html>
37. 37
Diferencias entre HTML 5 y
HTML 4.01 / XHTML 1.0
Estructura HTML 5
<!DOCTYPE HTML>
<html lang="es">
<head>
<meta charset="utf-8" />
<title>Título del sitio</title>
</head>
<body>
<div id="contenedor">
<header id="cabecera">
<!-- Contenido de la cabecera -->
<nav id="menuPrincipal"><!-- Menú principal --></nav>
</header>
<aside id="colIzq">
<!-- Contenido de la columna izquierda -->
</aside>
<main id="colCentro">
<!-- Contenido de la columna central -->
<article>
<!-- Artículo 1 -->
</article>
<article>
<!-- Artículo 2 -->
</article>
</main>
<footer id="pie"><!-- Contenido del pie --></footer>
</div>
</body>
</html>
Estructura HTML 4.01 / XHTML 1.0
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="es">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf8" />
<title>Título del sitio</title>
</head>
<body>
<div id="contenedor">
<div id="cabecera">
<!-- Contenido de la cabecera -->
<div id="menuPrincipal"><!-- Menú principal --></div>
</div>
<div id="colIzq">
<!-- Contenido de la columna izquierda -->
</div>
<div id="colCentro">
<!-- Contenido de la columna central -->
<div class="articulo">
<!-- Artículo 1 -->
</div>
<div class="articulo">
<!-- Artículo 2 -->
</div>
</div>
<div id="pie"><!-- Contenido del pie --></div>
</div>
</body>
</html>
38. 38
Diferencias entre HTML 5 y
HTML 4.01 / XHTML 1.0
Estructura HTML 5
<!DOCTYPE HTML>
<html lang="es">
<head>
<meta charset="utf-8" />
<title>Título del sitio</title>
</head>
<body>
<div id="contenedor">
<header id="cabecera">
<!-- Contenido de la cabecera -->
<nav id="menuPrincipal"><!-- Menú principal --></nav>
</header>
<aside id="colIzq">
<!-- Contenido de la columna izquierda -->
</aside>
<main id="colCentro">
<!-- Contenido de la columna central -->
<article>
<!-- Artículo 1 -->
</article>
<article>
<!-- Artículo 2 -->
</article>
</main>
<footer id="pie"><!-- Contenido del pie --></footer>
</div>
</body>
</html>
Estructura HTML 4.01 / XHTML 1.0
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="es">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf8" />
<title>Título del sitio</title>
</head>
<body>
<div id="contenedor">
<div id="cabecera">
<!-- Contenido de la cabecera -->
<div id="menuPrincipal"><!-- Menú principal --></div>
</div>
<div id="colIzq">
<!-- Contenido de la columna izquierda -->
</div>
<div id="colCentro">
<!-- Contenido de la columna central -->
<div class="articulo">
<!-- Artículo 1 -->
</div>
<div class="articulo">
<!-- Artículo 2 -->
</div>
</div>
<div id="pie"><!-- Contenido del pie --></div>
</div>
</body>
</html>
39. 39
Diferencias entre HTML 5 y
HTML 4.01 / XHTML 1.0
Estructura HTML 5
<!DOCTYPE HTML>
<html lang="es">
<head>
<meta charset="utf-8" />
<title>Título del sitio</title>
</head>
<body>
<div id="contenedor">
<header id="cabecera">
<!-- Contenido de la cabecera -->
<nav id="menuPrincipal"><!-- Menú principal --></nav>
</header>
<aside id="colIzq">
<!-- Contenido de la columna izquierda -->
</aside>
<main id="colCentro">
<!-- Contenido de la columna central -->
<article>
<!-- Artículo 1 -->
</article>
<article>
<!-- Artículo 2 -->
</article>
</main>
<footer id="pie"><!-- Contenido del pie --></footer>
</div>
</body>
</html>
Estructura HTML 4.01 / XHTML 1.0
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="es">
<head>
<meta http-equiv="Content-Type" content="text/html;
charset=utf-8" />
<title>Título del sitio</title>
</head>
<body>
<div id="contenedor">
<div id="cabecera">
<!-- Contenido de la cabecera -->
<div id="menuPrincipal"><!-- Menú principal --></div>
</div>
<div id="colIzq">
<!-- Contenido de la columna izquierda -->
</div>
<div id="colCentro">
<!-- Contenido de la columna central -->
<div class="articulo">
<!-- Artículo 1 -->
</div>
<div class="articulo">
<!-- Artículo 2 -->
</div>
</div>
<div id="pie"><!-- Contenido del pie --></div>
</div>
</body>
</html>
40. 40
Diferencias entre HTML 5 y
HTML 4.01 / XHTML 1.0
Estructura HTML 5
<!DOCTYPE HTML>
<html lang="es">
<head>
<meta charset="utf-8" />
<title>Título del sitio</title>
</head>
<body>
<div id="contenedor">
<header id="cabecera">
<!-- Contenido de la cabecera -->
<nav id="menuPrincipal"><!-- Menú principal --></nav>
</header>
<aside id="colIzq">
<!-- Contenido de la columna izquierda -->
</aside>
<main id="colCentro">
<!-- Contenido de la columna central -->
<article>
<!-- Artículo 1 -->
</article>
<article>
<!-- Artículo 2 -->
</article>
</main>
<footer id="pie"><!-- Contenido del pie --></footer>
</div>
</body>
</html>
Estructura HTML 4.01 / XHTML 1.0
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="es">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf8" />
<title>Título del sitio</title>
</head>
<body>
<div id="contenedor">
<div id="cabecera">
<!-- Contenido de la cabecera -->
<div id="menuPrincipal"><!-- Menú principal --></div>
</div>
<div id="colIzq">
<!-- Contenido de la columna izquierda -->
</div>
<div id="colCentro">
<!-- Contenido de la columna central -->
<div class="articulo">
<!-- Artículo 1 -->
</div>
<div class="articulo">
<!-- Artículo 2 -->
</div>
</div>
<div id="pie"><!-- Contenido del pie --></div>
</div>
</body>
</html>
41. 41
Diferencias entre HTML 5 y
HTML 4.01 / XHTML 1.0
Estructura HTML 5
Estructura HTML 4.01 / XHTML 1.0
<!DOCTYPE HTML>
<html lang="es">
<head>
<meta charset="utf-8" />
<title>Título del sitio</title>
</head>
<body>
<div id="contenedor">
<header id="cabecera">
<!-- Contenido de la cabecera -->
<nav id="menuPrincipal"><!-- Menú principal --></nav>
</header>
<aside id="colIzq">
<!-- Contenido de la columna izquierda -->
</aside>
<main id="colCentro">
<!-- Contenido de la columna central -->
<article>
<!-- Artículo 1 -->
</article>
<article>
<!-- Artículo 2 -->
</article>
</main>
<footer id="pie"><!-- Contenido del pie --></footer>
</div>
</body>
</html>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="es">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf8" />
<title>Título del sitio</title>
</head>
<body>
<div id="contenedor">
<div id="cabecera">
<!-- Contenido de la cabecera -->
<div id="menuPrincipal"><!-- Menú principal --></div>
</div>
<div id="colIzq">
<!-- Contenido de la columna izquierda -->
</div>
<div id="colCentro">
<!-- Contenido de la columna central -->
<div class="articulo">
<!-- Artículo 1 -->
</div>
<div class="articulo">
<!-- Artículo 2 -->
</div>
</div>
<div id="pie"><!-- Contenido del pie --></div>
</div>
</body>
</html>
42. 42
Diferencias entre HTML 5 y
HTML 4.01 / XHTML 1.0
Estructura HTML 5
<!DOCTYPE HTML>
<html lang="es">
<head>
<meta charset="utf-8" />
<title>Título del sitio</title>
</head>
<body>
<div id="contenedor">
<header id="cabecera">
<!-- Contenido de la cabecera -->
<nav id="menuPrincipal"><!-- Menú principal --></nav>
</header>
<aside id="colIzq">
<!-- Contenido de la columna izquierda -->
</aside>
<main id="colCentro">
<!-- Contenido de la columna central -->
<article>
<!-- Artículo 1 -->
</article>
<article>
<!-- Artículo 2 -->
</article>
</main>
<footer id="pie"><!-- Contenido del pie --></footer>
</div>
</body>
</html>
Estructura HTML 4.01 / XHTML 1.0
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="es">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf8" />
<title>Título del sitio</title>
</head>
<body>
<div id="contenedor">
<div id="cabecera">
<!-- Contenido de la cabecera -->
<div id="menuPrincipal"><!-- Menú principal --></div>
</div>
<div id="colIzq">
<!-- Contenido de la columna izquierda -->
</div>
<div id="colCentro">
<!-- Contenido de la columna central -->
<div class="articulo">
<!-- Artículo 1 -->
</div>
<div class="articulo">
<!-- Artículo 2 -->
</div>
</div>
<div id="pie"><!-- Contenido del pie --></div>
</div>
</body>
</html>
43. 43
Diferencias entre HTML 5 y
HTML 4.01 / XHTML 1.0
Estructura HTML 5
<!DOCTYPE HTML>
<html lang="es">
<head>
<meta charset="utf-8" />
<title>Título del sitio</title>
</head>
<body>
<div id="contenedor">
<header id="cabecera">
<!-- Contenido de la cabecera -->
<nav id="menuPrincipal"><!-- Menú principal --></nav>
</header>
<aside id="colIzq">
<!-- Contenido de la columna izquierda -->
</aside>
<main id="colCentro">
<!-- Contenido de la columna central -->
<article>
<!-- Artículo 1 -->
</article>
<article>
<!-- Artículo 2 -->
</article>
</main>
<footer id="pie"><!-- Contenido del pie --></footer>
</div>
</body>
</html>
Estructura HTML 4.01 / XHTML 1.0
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="es">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf8" />
<title>Título del sitio</title>
</head>
<body>
<div id="contenedor">
<div id="cabecera">
<!-- Contenido de la cabecera -->
<div id="menuPrincipal"><!-- Menú principal --></div>
</div>
<div id="colIzq">
<!-- Contenido de la columna izquierda -->
</div>
<div id="colCentro">
<!-- Contenido de la columna central -->
<div class="articulo">
<!-- Artículo 1 -->
</div>
<div class="articulo">
<!-- Artículo 2 -->
</div>
</div>
<div id="pie"><!-- Contenido del pie --></div>
</div>
</body>
</html>
44. 44
Diferencias entre HTML 5 y
HTML 4.01 / XHTML 1.0
Estructura HTML 5
<!DOCTYPE HTML>
<html lang="es">
<head>
<meta charset="utf-8" />
<title>Título del sitio</title>
</head>
<body>
<div id="contenedor">
<header id="cabecera">
<!-- Contenido de la cabecera -->
<nav id="menuPrincipal"><!-- Menú principal --></nav>
</header>
<aside id="colIzq">
<!-- Contenido de la columna izquierda -->
</aside>
<main id="colCentro">
<!-- Contenido de la columna central -->
<article>
<!-- Artículo 1 -->
</article>
<article>
<!-- Artículo 2 -->
</article>
</main>
<footer id="pie"><!-- Contenido del pie --></footer>
</div>
</body>
</html>
Estructura HTML 4.01 / XHTML 1.0
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="es">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf8" />
<title>Título del sitio</title>
</head>
<body>
<div id="contenedor">
<div id="cabecera">
<!-- Contenido de la cabecera -->
<div id="menuPrincipal"><!-- Menú principal --></div>
</div>
<div id="colIzq">
<!-- Contenido de la columna izquierda -->
</div>
<div id="colCentro">
<!-- Contenido de la columna central -->
<div class="articulo">
<!-- Artículo 1 -->
</div>
<div class="articulo">
<!-- Artículo 2 -->
</div>
</div>
<div id="pie"><!-- Contenido del pie --></div>
</div>
</body>
</html>
45. 45
Diferencias entre HTML 5 y
HTML 4.01 / XHTML 1.0
Estructura HTML 5
<!DOCTYPE HTML>
<html lang="es">
<head>
<meta charset="utf-8" />
<title>Título del sitio</title>
</head>
<body>
<div id="contenedor">
<header id="cabecera">
<!-- Contenido de la cabecera -->
<nav id="menuPrincipal"><!-- Menú principal --></nav>
</header>
<aside id="colIzq">
<!-- Contenido de la columna izquierda -->
</aside>
<main id="colCentro">
<!-- Contenido de la columna central -->
<article>
<!-- Artículo 1 -->
</article>
<article>
<!-- Artículo 2 -->
</article>
</main>
<footer id="pie"><!-- Contenido del pie --></footer>
</div>
</body>
</html>
Estructura HTML 4.01 / XHTML 1.0
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="es">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf8" />
<title>Título del sitio</title>
</head>
<body>
<div id="contenedor">
<div id="cabecera">
<!-- Contenido de la cabecera -->
<div id="menuPrincipal"><!-- Menú principal --></div>
</div>
<div id="colIzq">
<!-- Contenido de la columna izquierda -->
</div>
<div id="colCentro">
<!-- Contenido de la columna central -->
<div class="articulo">
<!-- Artículo 1 -->
</div>
<div class="articulo">
<!-- Artículo 2 -->
</div>
</div>
<div id="pie"><!-- Contenido del pie --></div>
</div>
</body>
</html>
51. 51
<audio>
Etiquetas
●
<audio>
●
<source>
●
<audio src="rebirth.ogg" controls="controls" preload="auto" autoplay="autoplay" loop="loop">
Por favor <a href="http://browsehappy.com/">actualiza el navegador</a> para mejorar la experiencia de uso.
</audio>
<track>
Atributos de <audio>
●
src
●
controls
●
autoplay
●
preload (auto, metadata, none)
●
loop
●
muted
●
crossorigin
●
mediagroup
<audio id="rebirth" controls="controls" preload="auto">
<source src="rebirth.ogg" type="audio/ogg">
<source src="rebirth.mp3" type="audio/mpeg">
<p>Por favor <a href="http://browsehappy.com/">actualiza el navegador</a> para mejorar la experiencia de uso.</p>
</audio>
52. 52
<canvas>
Atributos
●
width
●
height
Advertencia:
No se puede dibujar sin utilizar
JavaScript
http://www.chromeexperiments.com/
http://weavesilk.com/
http://mugtug.com/sketchpad/
<canvas id="dibujo" width="400" height="400">
Su navegador no soporta HTML5.<br />
Por favor <a href="http://browsehappy.com/">actualice el navegador</a> para mejorar la experiencia de uso.
</canvas>
<canvas id="logotipo" width="100" height="120">
<img src="logo.png" alt="Logotipo" />
</canvas>
53. 53
Otras etiquetas incorporadas en HTML
5
<figure>
<img src="img/setas_MAC.jpg" alt="Metropol Parasol en Sevilla" />
<figcaption>Fotografía de <span>Manuel Ángel Carmona</span></figcaption>
</figure>
Etiquetas
●
<details>, <summary>
●
<time>
●
<meter>
●
<progress>
●
<figure>, <figcaption>
●
<mark>
<p>Compra <meter value="3" min="0" max="4">paso 3 de 4</meter></p>
Curiosidad:
http://www.webmonkey.com/2011/11/w3c-adds-time-element-back-to-html5/
57. 57
CSS Level 3
●
●
●
●
●
●
Las hojas de estilo en cascada (CSS) no tienen versiones en el sentido
tradicional, sino niveles
Cada nivel de CSS se basa en el anterior, refinando definiciones y
añadiendo características
CSS Level 1: Todas las características de CSS 1 pero con la sintaxis
indicada en CSS 2.1
CSS Level 2: Lo define la especificación CSS 2.1
CSS Level 3: Se basa en CSS Level 2 módulo a módulo, utilizando CSS
2.1 como su núcleo. Cada módulo añade funcionalidad y/o reemplaza parte
de CSS 2.1
Estado de desarrollo de CSS: http://www.w3.org/Style/CSS/current-work
Guía de referencia: https://developer.mozilla.org/en-US/docs/Web/CSS/Reference
58. 58
Selectores (1/7)
●
ef
: Cualquier <f> incluido en <e>
●
e>f
: Cualquier <f> hijo de <e>
●
e+f
: <f> inmediatamente precedido por <e>
●
e~f
: <f> precedido por <e>
<p>párrafo 1</p>
<h1>Título</h1>
<p>párrafo 2</p>
<p>párrafo 3</p>
<p>párrafo 4</p>
<p>párrafo 5</p>
http://www.w3.org/TR/css3-selectors/#selectors
h1 + p {
font-size: 1.5em;
font-style: italic;
}
h1 ~ p {
background-color: #FBD551;
}
59. 59
Selectores (2/7)
●
e[atr]
: <e> si posee el atributo atr
●
e[atr="v"]
: <e> si posee el atributo atr con el valor "v"
●
e[atr~="v"]
: <e> con atr y el valor "v" dentro de una lista de valores
●
e[atr^="v"]
: <e> con atr y un valor que empiece por "v"
●
e[atr$="v"]
: <e> con atr y un valor que termine por "v"
●
e[atr*="v"]
: <e> con atr y un valor que contenga la subcadena "v"
<a href="http://www.w3c.es/">W3C España</a><br />
<a href="http://es.wikipedia.org/wiki/World_Wide_Web_Consortium"> W3C Wikipedia</a><br />
<a href="http://www.w3.org/">W3C</a>
a {color: #4364E0; text-decoration: none; font-weight: bold;}
a[href*="w3"] {
background: url(w3c.png) no-repeat 100% 50%;
padding-right: 20px;
}
60. 60
Selectores (3/7)
●
:root
: raíz del documento. Se corresponde con la etiqueta <html>
●
e:empty
: <e> sin hijos
●
e:first-child
: <e> cuando es el primer hijo de su elemento padre
●
e:last-child
: <e> cuando es el último hijo de su elemento padre
●
e:only-child
: <e> cuando es el único hijo de su elemento padre
●
e:nth-child(n)
: <e> cuando es el enésimo hijo de su elemento padre
●
e:nth-last-child(n) : <e> cuando es el enésimo hijo contando desde el final
<p>párrafo 1</p>
<div>
<h1>Título</h1>
<h2>Subtítulo</h2>
</div>
<p>párrafo 2</p>
<p>párrafo 3</p>
<p>párrafo 4</p>
<p>párrafo 5</p>
p:nth-child(4) {
color: #E5E5E5;
background-color: #7F7F7F;
}
61. 61
Selectores (4/7)
●
e:first-of-type
: <e> cuando es el primer <e> de su elemento padre
●
e:last-of-type
: <e> cuando es el último <e> de su elemento padre
●
e:only-of-type
●
e:nth-of-type(n)
●
e:nth-last-of-type(n) : <e> cuando es el enésimo <e> contando desde el final
●
:not(e)
<p>párrafo 1</p>
<div>
<h1>Título</h1>
<h2>Subtítulo</h2>
</div>
<p>párrafo 2</p>
<p>párrafo 3</p>
<p>párrafo 4</p>
<p>párrafo 5</p>
: <e> cuando es el único <e> de su elemento padre
: <e> cuando es el enésimo <e> de su elemento padre
: cualquier <e> que no es el indicado
p:nth-of-type(4) {
color: #E5E5E5;
background-color: #7F7F7F;
}
64. 64
Selectores (4/7)
Caso práctico: Formato de tablas (3/6)
En nth-of-type(n) podemos sustituir n por:
●
un número
●
la fórmula an+b, dónde a indica el múltiplo y b un desfase
●
la constante odd (impar) equivalente al valor 2n+1
●
la constante even (par) equivalente al valor 2n
tr:nth-of-type(odd){
background-color: #92C4C4;
}
tr:nth-of-type(even){
background-color: #92D0D0;
}
68. 68
Selectores (5/7)
●
:target
: elemento referenciado por una URL
●
::selection : selección del usuario
<ul>
<li><a href="#t1">Ir a título 1</a></li>
<li><a href="#t2">Ir a título 2</a></li>
<li><a href="#t3">Ir a título 3</a></li>
</ul>
<article>
<h1 id="t1">Título 1</h1>
<p>Lorem ipsum dolor sit amet,
consetetur sadipscing elitr.</p>
</article>
<article>
<h1 id="t2">Título 2</h1>
<p>Sed diam nonumyeirmod tempor
invidunt ut labore et dolore magna aliquyam
erat, sed diamvoluptua.</p>
</article>
<article>
<h1 id="t3">Título 3</h1>
<p>At vero eos et accusam et justo duo
dolores et ea rebum.</p>
</article>
:target {
background-color: #FBD551;
}
::selection {
background-color: #91E9B6;
color: #E45262;
}
69. 69
Selectores (6/7)
●
e:enabled
: <e> de la interfaz de usuario activado
●
e:disabled
: <e> de la interfaz de usuario desactivado
●
input:checked : casilla de verificación o de opción marcada
<div><input name="nombre" placeholder="Nombre" /></div>
<div><input name="apellidos" placeholder="Apellidos" disabled="disabled" /></div>
<div>
<label>Forma de pago:</label>
<ul>
<li>
<input id="pagoMetalico" name="pago" type="radio" value="metalico" />
<label for="pagoMetalico">En metálico</label>
</li>
<li>
<input id="pagoVisa" name="pago" type="radio" value="visa" />
<label for="pagoVisa">Visa</label>
</li>
<li>
<input id="pagoMastercard" name="pago" type="radio" value="mastercard" />
<label for="pagoMastercard">Mastercard</label>
</li>
</ul>
</div>
li {list-style: none;}
input:enabled {
background-color: #DBFFE6;
}
input:disabled {
background-color: #FFE0DB;
}
input:checked {
background-color: #0F0;
}
70. 70
Selectores (7/7)
●
input:valid
: campo con un valor válido
●
input:invalid
: campo con un valor inválido
●
input:in-range
: campo con un valor dentro de rango
●
input:out-of-range: campo con un valor fuera de rango
●
e:required
: <e> requerida
●
e:optional
: <e> opcional
●
e:read-only
: <e> de sólo lectura
●
e:read-write
: <e> de lectura y escritura
<form action="#">
<label>correo válido:</label>
<input name="correoVal" type="email" value="usuario@servidor.com" />
<label>correo inválido:</label>
<input name="correoInv" type="email" value="usuario" />
</form>
http://www.w3.org/TR/css3-ui/#new-user-interface-state-pseudo-classes
input {
border: 1px solid #FFA500;
padding: 0.5em;
}
input:valid {
background-color: #90EE90;
}
input:invalid {
background-color: #FFC0CB;
}
71. 71
Valores y unidades
Unidades más interesantes
●
px
: píxel
●
%
●
em
: tamaño de fuente de la caja
●
rem
: tamaño de fuente de la raíz
●
dpi
: puntos por pulgada
●
dppx : puntos por píxel
●
vw
●
vh : viewport-percentage height
●
vmin : el más pequeño de vw o vh
●
vmax: el más grande de vw o vh
●
deg
: grados
●
ms
: milisegundos
●
s
: segundos
: proporción de la caja
: viewport-percentage width
http://www.w3.org/TR/css3-values/
72. 72
Colores y transparencias
●
RGB : Red Green Blue
●
HSL : Hue, Saturation, Lightness
●
opacity : Opacidad de 0 a 1
●
RGBA : RGB + Alpha
●
HSLA : HSL + Alpha
●
transparent : Color transparente
<div id="caja1">Caja 1</div>
<div id="caja2">Caja 2</div>
<div id="caja3">Caja 3</div>
#caja1 {
background-color: hsl(60,100%,50%);
color: #00F;
}
#caja2 {
background-color: #7AC7FF;
opacity: 0.5;
}
#caja3 {
background-color: rgba(255,160,120,0.6);
}
115. 115
Soporte actual de los navegadores
Ninguno de los principales navegadores soportan al 100% HTML5 o CSS3.
En algunos casos, cuando el navegador no implementa propiedades o funciones
CSS3, es posible utilizar prefijos para utilizar la implementación propia del
motor de renderizado de cada navegador.
Prefijos por navegador:
●
-webkit-
para Chrome y Safari
●
-moz-
para Firefox
●
-o-
para Opera
●
-ms-
para Internet Explorer
La W3C no valida el código que utiliza estos prefijos.
http://caniuse.com/
116. 116
Soporte de Internet Explorer
Soporte nulo en versiones anteriores a Internet Explorer 9.
Para que las versiones anteriores a IE9 puedan mostrar páginas realizadas con
HTML5 de forma correcta, debemos añadir el siguiente código:
En el <head>
<!--[if lt IE 9]>
<script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
En el fichero CSS
article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section {
display:block;
}