Lenguajes de marcado: HTML5 y XHTML

Anuncio
http://www.flickr.com/photos/nolanus/5848333881/
Tema 2 (primera parte)
Lenguajes de
marcado:
HTML5 y
XHTML
1. Conceptos básicos
2. Multimedia
3. Secciones de página
4. Formularios
http://www.flickr.com/photos/26158205@N04/4500611033/
http://www.flickr.com/photos/26158205@N04/4500611033/
2.1
Conceptos
básicos
HTML 4, HTML5, XHTML...
Lenguajes de marcado
HTML
Lenguajes de marcado 3
Lenguaje de marcado (etiquetas) para escribir páginas
web
! <p>Como mucha gente sabe, los <strong> lenguajes
! de marcado </strong> usan etiquetas mezcladas
con el texto </p>
!
Es el contenido de la página, no el estilo (apariencia visual)
El estilo se expresa en otro lenguaje llamado CSS
La versión más difundida es la 4.01
La 5 está en status de “Candidate Recommendation” (=¡casi
definitiva!.)
Lo define el W3C, en el que participan empresas, universidades,
organismos sin ánimo de lucro,… Así se asegura que los
estándares no son “propiedad de nadie”
HTML = poco estricto
Lenguajes de marcado 4
HTML tiene una sintaxis no demasiado estricta
!
<p>Esto vale como párrafo </p>!
! <p> Y esto.!
! <p> Y esto también!
!
Aún así, un porcentaje significativo de páginas web existentes
contiene errores de sintaxis
¿Qué ocurriría si realmente los navegadores fueran tan estrictos
como los compiladores?… http://validator.w3.org
HTML = poco estricto
Lenguajes de marcado 5
HTML tiene una sintaxis no demasiado estricta
!
<p>Esto vale como párrafo </p>!
! <p> Y esto.!
! <p> Y esto también!
!
Aún así, un porcentaje significativo de páginas web existentes
contiene errores de sintaxis (Ejemplo “An Investigation of
Documents from the World Wide Web, 1996”)
¿Qué ocurriría si realmente los navegadores fueran tan estrictos
como los compiladores?...
HTML vs. XHTML
Lenguajes de marcado 6
XHTML contiene las mismas etiquetas que HTML (es decir,
cualquier navegador antiguo lo lee perfectamente), solo que tiene
una sintaxis mucho más estricta
Se facilita la detección y corrección automática de errores
Se simplifica la tarea del navegador. El parser es más sencillo
Por desgracia, en la práctica se ha visto que el incentivo para usar
XHTML en vez de HTML es pequeño
Como las etiquetas son las mismas, no aporta nada nuevo, salvo la
“satisfacción de las cosas bien hechas”. Cuéntale eso a alguien que
hace webs con FrontPage…
¡¡Explorer o el mal!!
El W3C “tiró la toalla” y canceló XHTML 2 en favor de HTML 5
HTML vs. XHTML
Lenguajes de marcado 7
XHTML: etiquetas en minúsculas - HTML: indiferente
XHTML: todas las etiquetas se deben abrir y cerrar, en HTML solo
algunas
XHTML: todos los atributos deben ir entre comillas
<DIV>Esto vale en HTML </DIV>!
<div>Pero en XHTML es así</div>!
!
<!— HTML correcto -->!
<img src=homer.jpg width=200> <br>!
<!— Versión XHTML -->!
<img src=“homer.jpg” width=“200”/> <br/>!
HTML 5 vs. HTML 4
Lenguajes de marcado 8
Una evolución de HTML 4, no de XHTML
Más orientado a aplicaciones web que a páginas
estáticas
Se puede dibujar en 2D sobre <canvas>
Hay nuevos APIs javascript (¡muchos!, ver por ejemplo http://
html5demos.com/!
También hay nuevas etiquetas
Para representar elementos comunes en muchas páginas: barras
de navegación, pies
Para mostrar video sin Flash ni otros plugins Para mejorar los formularios HTML, un poco anticuados
Estructura de un documento HTML5
<!DOCTYPE html>!
<html lang="es"> !
! <head>!
!! <title>!
! !
Mi primer documento HTML!
! ! </title>!
! </head>!
! <body>!
!! <p>¡Hola mundo!</p> !
! </body>!
</html>
Lenguajes de marcado 9
Declaración de tipo de documento
Cabecera (HEAD)!
• Título página (TITLE)!
• Metainformación (META)!
• Estilos (STYLE)
Cuerpo
Los DOCTYPES
Lenguajes de marcado 10
Indican el lenguaje que usamos (HTML5/HTML4/
XHTML) e incluso la variante
Por ejemplo, HTML4 viene en tres variantes, “strict”, “transitional”
y “frameset”
Información necesaria para los validadores http://validator.w3.org
En versiones más antiguas de los navegadores, tienen
impacto en cómo se interpreta el CSS. Consultad
http://hsivonen.iki.fi/doctype/
Estructura de un documento XHTML
Lenguajes de marcado 11
<!DOCTYPE html!
PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"! Declaración de tipo de documento
"DTD/xhtml1-strict.dtd">!
<html xmlns="http://www.w3.org/1999/xhtml">!
<head>!
Cabecera (HEAD)!
• Título página (TITLE)!
<title>!
• Metainformación (META)!
Mi primer documento XHTML!
• Estilos (STYLE)
</title>!
</head>!
Cuerpo
<body>!
Hola mundo <br/ >!
</body>!
</html>
2.2
http://www.flickr.com/photos/30363492@N06/5852901232
Multimedia
Imágenes (HTML4), audio y
video (HTML5)
Lenguajes de marcado
Video
Lenguajes de marcado 13
Con HTML5 se hace posible introducir video y audio de
forma “nativa”
Ya que hasta el momento solo se podía hacer con plugins (Flash)
En teoría debería ser tan sencillo como con las imágenes
!
!
<video controls src="mivideo.mp4" width="320"
height="240"> </video>
!
Por desgracia, no todos los navegadores implementan
los mismos formatos
De hecho, no hay un único formato compatible con TODOS los
navegadores
Video para todos los navegadores
Lenguajes de marcado 14
Necesitamos el mismo video en diferentes formatos
<video controls>
<!-- Firefox, Chrome, Opera -->
<source src="somevideo.webm" type=“video/webm">
<!-- Safari, IE, Chrome, Firefox -->
<source src="somevideo.mp4" type="video/mp4">
I'm sorry; your browser doesn't support HTML5 video in WebM with
VP8 or MP4 with H.264.
<!-- You can embed a Flash player here, to play your mp4 video in
older browsers -->
</video>
2.3
http://www.flickr.com/photos/roguemm/2890526876
Secciones de
página
Lenguajes de marcado
Todas las páginas tienen
secciones diferenciadas:
cabecera, contenido, pie,
barra de navegación...
Secciones de página en HTML4
<body>
<div id="cabecera">
<img src="imag/logo.png" />
</div>
<div id="navegacion">
<p>Enlaces</p>
<a href="...">Principal</a>
<a href="...">Teoría</a>
...
</div>
<div id="novedades">
<h1>Novedades</h1>
<span class="fecha">(27-09-07)</span>
<a href="...">Notas...</a><br />
...
</div>
<div id="contenido"><br />
<h1>Curso 2006/2007</h1>
...
</div>
</body>
Lenguajes de marcado 16
Secciones de página en HTML5
Lenguajes de marcado 17
<section>: una sección de un documento
<article>: un elemento auto-contenido como un post de
un blog o un artículo en una revista
<aside>: algo separado del contenido principal o
tangencial a él
<nav>: barra de navegación con enlaces
<header>: cabecera o introducción a algo
<footer> pie o apéndice o similar
Aspecto visual
Lenguajes de marcado 18
Las secciones HTML5 no tienen un aspecto visual “por
defecto”
Por ejemplo <aside> no va a salir al lado del texto principal
Hay que dar estilos con CSS, como con todas las demás
!
Navegadores antiguos: cuando un navegador se
encuentra con una etiqueta que no “entiende”
simplemente la ignora
En Explorer 8 y anteriores hay que usar algún que otro truco, ver
por ejemplo http://remysharp.com/2009/01/07/html5-enablingscript/
2.4
http://www.flickr.com/photos/cssercom/5419851057
Formularios
Enviar datos al servidor
Lenguajes de marcado
Formularios en HTML5
Lenguajes de marcado 20
Incluyen (entre otras cosas) varios tipos nuevos de
controles <input>
Campo de email <input type=”email”>
Campo de URL <input type=”url”>
Campo de número <input type=”number”>
Slider <input type=”range”>
Fecha (date), hora (time), fecha/hora(datetime) ej. <input
type=”datetime”>
Los navegadores que no reconocen los campos
anteriores los tratan como type=”text”
Validación en el cliente
!
!
Lenguajes de marcado 21
Validación “por defecto”
!
!
Validación explícita
<form action="nada.php" method="get">
! <input type="text" name="nombre" required maxlength=50>
type="date" name="fecha" min="2014-1-1" max=“2014-12-31">
! <input
<input type="number" name="rumbo_grados" min=0 max=359>
</form>
!
!
Siempre debe haber además una validación en el
servidor
Móviles y formularios HTML5
Lenguajes de marcado 22
Los navegadores de dispositivos móviles adaptan el
teclado virtual en pantalla al tipo de campo, para
optimizar la escritura.
Algunas referencias
Lenguajes de marcado 23
Libros:
Dive into HTML5, Mark Pilgrim, con licencia CC
http://proquest.safaribooksonline.com/search?q=html5 (desde
dentro de la UA)
!
Webs:
developers.whatwg.org
docs.webplatform.org/wiki/html
caniuse.com
desarrolloweb.com
Descargar