Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Necesidad de estndar
Posibles perversiones...
No estandarizacin Estandarizar algo que no tiene xito Estndar demasiado pronto Estndar demasiado tarde Comits poco representativos Estndar sin prototipos No adoptar el estndar etc., etc.
Especificacin (comit)
Primeros prototipos
Evolucin
1970 1985 1990 1995
GML SGML
Generalized Markup Language (C.Goldfarb, E. Moshie, R. Lorie) Standard Generalized Markup Language (ISO)
HTML
Borrador
HTML 5
Evolucin de HTML 4.01 (compatibilidad hacia atrs) Admite 2 Sintaxis: HTML y XML Modelo de procesamiento estndar
Mejorar interoperabilidad entre implementaciones Incluye API DOM
Antes estaba separada
Principios de diseo
Compatibilidad
Soportar contenido existente Degradado corts: alternativas para navegadores anteriores Reutilizar caractersticas que ya se usan
Utilidad
Resolver problemas existentes Separacin: estructura, presentacin, comportamiento
Interoperabilidad
Comportamiento y gestin de errores definidos
Acceso universal
Independencia de medios, internacionalizacin y accesibilidad
2 sintaxis
HTML
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Ejemplo</title> </head> <body> <p>Algo de texto</p> </body> </html> Tipo MIME: text/html
XHTML
<?xml version="1.0" encoding="UTF-8"?> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>Ejemplo</title> </head> <body> <p>Algo de texto</p> </body> </html> Tipo MIME: application/xml application/xhtml+xml
Tipo de documento
Solamente es necesario <!DOCTYPE html> Antes:
Estricto: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
Ms informacin: http://hsivonen.iki.fi/doctype/
Jose Emilio Labra Gayo, Universidad de Oviedo
Sintaxis HTML
HTML5 ya no tiene sintaxis SGML ni XML
No hay declaraciones de espacios de nombres Se especifica cmo tratar errores Gestin de errores: modelo draconiano vs flexibilidad
Sintaxis simplificada
No siempre es obligatorio cerrar etiquetas No es obligatorio poner entre comillas valores simples
Elementos
Elemento:
<etiqueta atributo1="valor1" atributo2="valor2"...> . . . contenidos . . . </etiqueta>
<externo> <interno> texto </interno> </externo> <externo> <interno> texto </externo> </interno>
Elementos vacos
Elementos sin contenido
<img src="foto.png" alt="Paisaje asturiano"></img>
Atributos
El orden de los atributos no es significativo No puede haber 2 atributos con el mismo nombre Pueden usarse comillas dobles o simples
<body onLoad="alert('Hola')" onUnload='alert("Adios")'> . . . </body>
Comentarios HTML
Texto entre <!-- y -->
<head> <title>Ejemplo</title> <!-- Esto es un comentario --> </head>
Estructura de HTML
Elemento raz <html> contiene:
<head> metadatos <body> contenido de la pgina
= HTML4
head
= HTML4
Especifica metadatos Puede contener un elemento <title> (en HTML4 era obligatorio) Adems, puede contener: <meta> <link> <style> <base> <command> <script> <noscript>
meta
Permite incorporar metadatos. Ejemplos:
<head> <title>Ejemplo</title> <meta charset="utf-8" > <meta name="author" content="Jose Torres"> ... </head>
Antes
<meta http-equiv="Content-type" content="text/html; charset=UTF-8">
link
= HTML4
Permite enlazar a otros recursos. Atributo href indica el recurso al que se enlaza Atributo rel indica el tipo de enlace, puede ser: author, help, license, next, prev, prefetch, stylesheet, Pueden realizarse varios tipos de enlace a la vez
<head> ... <link rel="next" href="capitulo3.html"> <link rel="prev" href="capitulo1.html"> <link rel="author license" href="acercaDe.html"> </head>
link stylesheet
type="text/css" es el valor por defecto media permite especificar el tipo de medio
all (por defecto), screen, print, projection,
= HTML4
title permite dar un nombre a la hoja de estilos alternate stylesheet indica que es un hoja alternativa
<head> ... <link rel="stylesheet" href="estilo.css" title="Azul"> <link rel="alternate stylesheet" href="rojo.css" title="Rojo"> <link rel="stylesheet" href="impreso.css" media="print"> </head>
link alternate
rel="alternate" indica enlaces alternativos
Ejemplo: enlazar RSS <head> ... <link rel="alternate" type="application/atom+xml" title="Blog en Atom" href="blog.atom" > . . . </head>
= HTML4
style
Permite incrustar declaraciones de estilo
Pueden afinarse estilos de una hoja de estilos En general, es mejor utilizar enlaces a ficheros externos
<head> ... <link rel="stylesheet" href="estilo.css" > <style> p { text-align: justify; } p:first-letter {font-size: 3em; } </style> </head>
= HTML4
base
Permite especificar la URI de base
Las URIs relativas tomarn dicha URI como base
= HTML4
<html> <head> <title>Noticias</title> <base href="http://www.example.com/noticias/index.html"> </head> <body> <a href="historico.html">Historico</a> </p> </body> </html>
Apunta a:
http://www.example.com/noticias/historico.html
Jose Emilio Labra Gayo, Universidad de Oviedo
script
Permite aadir interactividad type="text/javascript" por defecto Puede ser:
= HTML4
Externo: Mediante src Interno: Incrustado directamente (puede usarse para datos)
<head> ... <script src="jquery.js"></script> <script> $(document).ready(function() { $("a").click(function() { alert("Has pulsado!"); }); }); </script> </head> . . .
Jose Emilio Labra Gayo, Universidad de Oviedo
body
= HTML4
Especifica el contenido del documento Slo debe haber un elemento <body> Diversos atributos permiten controlar eventos de pgina
<html> <head> <script> function pon(msg) { document.getElementById('evento').textContent = msg; } </script> </head> <body onload="pon('onload')" onresize="pon('resize')" > <p>Evento: <span id="evento">nada</span></p> </body> </html>
Jose Emilio Labra Gayo, Universidad de Oviedo
Elementos de Estructura
HTML5 contiene nuevos elementos para para definir la estructura semntica del documento
HTML5 outliners: Muestran estructura del documento h1,h2,h6 div section article hgroup nav aside header footer address figure details Ttulos Agrupa elementos de contenido Seccin, puede incluir encabezados Artculo Grupo de cabecera Listas de navegacin Contenido auxiliar Cabecera Pie Define datos de contacto Figuras Detalles opcionales
h1, h2, h6
= HTML4
Definen ttulos de distinto nivel Nivel de estructura definido por el nmero (h1h6)
Problema para cortar/pegar contenido
<body> <h1>La primavera</h1> <h2>Introduccin</h2> <p>... </p> <h2>Primera parte: Agentes</h2> <h3>Las flores</h3> <p>...</p> <h3>Las personas</h3> <p>...</p> <h2>Segunda parte: Acciones</h2> <h3>El amor</h3> <p>...</p> <h3>La felicidad</h3> <p>...</p> </body>
Jose Emilio Labra Gayo, Universidad de Oviedo
div
Se utiliza para agrupar contenido class, id, lang, etc. permiten seleccionar grupos div No tiene significado por si mismo
Abuso de div mezclando caractersticas de presentacin Recomendacin HTML5: slo como ltima alternativa
<body> <div id="cabecera"> . . . </div> <div id="contenido"> <div class="noticia"> . . . </div> </div> <div id="barraLateral"> . . . </div> </body>
Jose Emilio Labra Gayo, Universidad de Oviedo
= HTML4
section
Permite declarar una seccin dentro de un documento Pueden anidarse secciones dentro de otras Antes
<body> . . . <div id="Sociedad"> <h2>La via social</h2> <p> ... </p> </div> <div id="Deportes"> <h2>Noticias deportivas</h2> <p>. . .</p> </div> </body> <body> . . . <section id="Sociedad"> <h1>La via social</h1> <p>...</p> </section> <section id="Deportes"> <h1>Noticias deportivas</h1> <p>. . .</p> </section> </body>
article
Declara una parte independiente de un documento
Artculo de blog, de peridico, etc. Algo que podra reutilizarse o distribuirse en otros documentos
hgroup
Forma un grupo de cabecera
Ser un elemento nico de cara a la tabla de contenidos til para agrupar subttulos sin afectar al esquema del documento
<body> <hgroup> <h1>El noticiero</h1> <h2>El mejor diario de noticias</h2> </hgroup> <section id="Sociedad"> <h1>La via social</h1> <p>...</p> </section> ...
Jose Emilio Labra Gayo, Universidad de Oviedo
aside
Algo relacionado tangencialmente con el contenido actual
Habitualmente, pueden ponerse en un lateral Su lectura no es obligada (los agentes podran ocultarlos)
<article id="Boda"> <h1>Por fin hay boda</h1> <p>A pesar de las protestas de los invitados, la boda se celebr...</p> <aside> <h1>Refrn popular</h1> Tal y como dice el refrn: <q>Ni novia sin cejas, ni boda sin quejas.</q> </aside> </article>
nav
Declara un grupo de navegacin
Suele ser una lista de enlaces
<body> <h1>El noticiero</h1> <nav> <ul> <li><a href="#sociedad">Sociedad</a></li> <li><a href="#deportes">Deportes</a></li> </ul> </nav> <section id="Sociedad"> <h1>La via social</h1> <p>. . .</p> </section> .. .
Jose Emilio Labra Gayo, Universidad de Oviedo
header
Declara una cabecera No forman parte de la tabla de contenidos (outline)
<body> <header> <h1>El noticiero</h1> <img src="logo.png" alt="logo de El noticiero" > <nav> <ul> <li><a href="#sociedad">Sociedad</a></li> ... </ul> </nav> </header> ... </body>
footer
Declara un pie de documento, seccin o artculo
<body> <header> ... </header> <section id="Sociedad"> ... </section> ... <footer> 2012. Todos los derechos reservados </footer> </body> </html>
Jose Emilio Labra Gayo, Universidad de Oviedo
address
Indica informacin de contacto Habitualmente se incluye en footer
= HTML4
... <footer> 2012. Todos los derechos reservados <address> Contacto: <a href="http://noticiero.es">El noticiero</a> </address> </footer>
= HTML4
<figure> <img src="juanBarbacoa.jpg" alt="Foto de Juan en la barbacoa"> <figcaption>Juan preparando una barbacoa</figcaption> </figure>
details
Contenido que puede estar oculto
summary indica el contenido visible El navegador puede visualizar los detalles a peticn del usuario
<h1>Campeonato de tenis de mesa</h1> <p>Acaba de arrancar la ltima competicin de tenis del pueblo. </p> <details> <summary>Lista de partidos</summary> <ul> <li>Jueves, Juan - Antonio</li> <li>Viernes, Ana- Antonio</li> <li>Sbado, Ana- Juan</li> </ul> </details>
Elementos textuales
Elementos textuales
Elemento
em
strong small s cite
= HTML4
Definicin
nfasis
Importante No importante Incorrecto
Ejemplo
Esta bebida me parece <em>espectacular</em>
La leche est <strong>muy caliente</strong> Tome Exidina <small>Este medicamento... </small> Precio: <s>10 euros</s>. 9,95 euros
q
abbr span br wbr
Citas
Abreviacin Texto diferente Salto de lnea Posible salto
Elementos textuales
Elemento
code var samp kbd sub sup i b u
= HTML4
Definicin
Cdigo Variable Muestra, Salida Entrada teclado Subndice Superndice Voz alternativa Palabras clave Anotaciones
Ejemplo
<code>checkDB</code> chequea la base de datos. Sea <var>n</var> el nmero de personas, ... La salida es: <samp>Syntax error</samp> Pulse <kbd>F1</kbd> para obtener ayuda El agua es H<sub>2</sub>O El cuadrado es <var>x<sup>2</sup></var> Es un <i>poquillo</i> trasto Contiene <b>salmn</b> y <b>tomate</b> Escribe <u>lopo</u> en vez de <b>lobo</b>
Insercin/Borrado
= HTML4
Elemento
ins del
Definicin
Texto insertado Texto borrado
Ejemplo
<ins>Texto insertado</ins> <del>Texto eliminado</del>
<ol> <li><ins datetime="2012-02-12">Bug 2: No funciona cortar</ins></li> <li><del datetime="2012-03-01"> <ins datetime="2008-02-11">Bug 221: Error al cargar</ins> </del> </li> </ol>
Definicin
Texto Resaltado Ej. tras una bsqueda Dato Evento temporal datetime indica instante
Ejemplo
El <mark>lobo</mark> ibrico. Los <mark>lobo</mark>s son animales Juan sac un <data value="10">diez</data>. Nos vemos el <time datetime="2012-04-01">sbado</time>
Tablas
Elemento Definicin
table caption tr th td colgroup col tbody thead tfoot Una tabla Leyenda de la tabla Fila Celda de cabecera Celda de datos Grupo de columnas Representa una columna dentro de un colgroup Cuerpo de la tabla Cabecera de la tabla Pie de tabla <table> <caption>Notas</caption> <tr><th>Nombre</th><th>Nota</th></tr> <tr><td>Jose Torre</td><td>8</td></tr> <tr><td>Ana Blanco</td><td>6</td></tr> <tr><td>Juan Mato</td><td>4</td></tr> <tr><td>Luis Rojas</td><td>7</td></tr> </table>
Agrupar columnas
Contenido Incrustado
Elemento
img audio video object iframe map/area
Definicin
Imagen Audio Vdeo Objeto Pgina Mapa
Ejemplo
<img src="logoX.png" alt="Logotipo X"> <audio src="cancion.mp3" controls autoplay loop> <video src="navidad.mp4" controls > <object data="juego.swf" > <iframe src="http://www.w3c.org" > <map name="cosas"> <area shape="rect" coords="0,0,82,126" alt="casa" href="casa.htm" /> <area shape="circle" coords="90,58,3" alt="bola" href="bola.html" /> </map>
Atributos
= HTML4
Elemento
class id title style accesskey tabindex
Definicin
Clase Identificador nico Ttulo Informacin de estilo Atajo de teclado Navegacin mediante tabulacin
Ejemplo
<div class="Anuncio">. . .</div> <article id="r23">. . .</article> Texto <span title="verdoso">verde</span> Texto <span style="color:green">verde</span> <a accesskey=B>Bsqueda</a> <a href="about.html" tabindex="2">Acerca</a> <a href="mapa.html" tabindex="1">Mapa</a>
Elemento
contenteditable contextmenu hidden spellcheck translate data-*
Definicin
Indica si el elemento puede editarse Muestra men contextual Elemento no relevante Habilitar corrector ortogrfico Traducir o no una cadena Atributos definidos por el usuario
Ejemplo
Nombre: <span contenteditable>Juan</span> <input id=genero contextmenu=genero> <section id=juego hidden>. . . </section> Nombre: <input id=nombre spellcheck=no> Ejemplo ms adelante: Internacionalizacin <p data-calorias="50">kiwi</p>
Internacionalizacin
Internacionalizacin
Elemento
charset
Definicin
Codificacin
Ejemplo
<meta charset="utf-8" >
lang xml:lang
hreflang
Idioma en,es,en-US,...
Idioma de un enlace
translate
Traducir un texto o no
Internacionalizacin
Elemento
ruby, rt, rp
Definicin
Anotaciones fonticas habituales en textos asiticos
Ejemplo
<ruby><rt></rt><rt></rt></ruby>
bdi
bdo
Formularios
Ejemplo
http://ejemplo.com/form.html
= HTML4
<form method="post" action="http://ejemplo.com/procesa"> <label>Nombre: <input name="cliente"></label><br> <label>Correo electrnico: <input name="correo"></label><br> <button>Enviar</button> </form>
WWW
POST http://ejemplo.com/procesa
Usuario
Servidor
Tipos de entrada
Elemento
text password
= HTML4
Definicin
Texto (por defecto) Oculta caracteres
Ejemplo
<input name=cliente> <input name=cliente type=text> <input type=password ...>
hiden
checkbox
Campo oculto
on/off
radio
<p>Gnero: <input type=radio name=genero value=H>Hombre <br> <input type=radio name=genero value=M>Mujer </p>
Tipos de entrada
= HTML4
Elemento
file submit image
Definicin
Fichero Enviar Imagen (enviar)
Ejemplo
<input type=file name=Fichero> <input type=submit value="Enviar"> <input type=image src="img.png" alt="Enviar">
reset
Reiniciar
Elementos de formularios
Atributo
fieldset
Definicin
Agrupa campos de un formulario
Ejemplo
<fieldset> <legend>Datos personales</legend> Nombre: <input name="nombre"><br> Apellidos: <input name="apellidos"> </fieldset>
<button type=submit> <select name="genero"> <option value="H">Hombre</option> <option value="M">Mujer</option> </select> <textarea rows="4" cols="50"> Comentarios </textarea>
button select
textarea
Atributos
Atributo
type name
= HTML4
Definicin
Tipo de entrada Nombre del campo
Ejemplo
<input type=. . . > <input name=apellidos >
value
checked
maxlength disabled
readonly
Slo lectura
Definicin
Correo electrnico URL Telfono Texto de bsqueda
Ejemplo
<input type=email name=correo> <input type=url name=Homepage> <input type=tel name=Tlfno> <input type=search name=cadena>
email
Jose Emilio Labra Gayo, Universidad de Oviedo
url
tel
bsqueda
Definicin
Color
Ejemplo
<input type=color name=colorFondo>
Fechas
number
Nmero
range
Rango
Nuevos atributos
Atributo
autocomplete placeholder required
Definicin
Autocompletar on/off Pista sobre el tipo de entrada Campo obligatorio
Ejemplo
<input name=Nombre autocomplete="off"> <input name=textoBuscar placeholder="Cadena a buscar"> <input name=usuario required>
pattern
min/max/step
multiple
Expresiones regulares
Expresin Elemento \d a*b [xyz]b a?b a+b Posibles valores Elemento 2 b, ab, aab, aaab, xb, yb, zb b, ab ab, aab, aaab,
ax, bx, cx Carcter dgito seguido de x Carcter dgito seguido de x paparucha Cualquier carcter (1) seguido de abc ax, bx, aax, bbx, abx, bax,... ax, aax, aaax Salto de lnea Letra mayscula Smbolo de moneda
Nuevos Atributos
Atributo
autofocus
Definicin
Indicar adquisicin "focus"
Lista de valores sugeridos
Ejemplo
<input name=Nombre autofocus>
<input list="lista" name="nombre"> <datalist id="lista"> <option value="Jose"> <option value="Luis"> </datalist> <input name=usuario form="DatosUsr"> <input type=submit formnovalidate formtarget="blank">
list
Nuevos elementos
Atributo
meter
Definicin
Medida dentro de un rango. Ej. Espacio en diso,
Ejemplo
Espacio en disco: <meter value="34" max="100">34%</meter>
progress
Representa el progreso de Ficheros copiados: una tarea en ejecucin <progress value="34" Ej. %datos copiados max="100">34%</progress> Resultado de una computacin <form onsubmit="return false" oninput="o.value = a.valueAsNumber + b.valueAsNumber"> <input name=a type=number step=any> + <input name=b type=number step=any> = <output name=o></output> </form>
output
Nuevos elementos
Atributo
menu, command
Definicin
Crea un men con comandos
Ejemplo
<menu type=toolbar> <command label="Abrir" onclick="open()"> <command label="Guardar" onclick="save()"> </menu>
<keygen name=clave>
keygen
Microdatos
Enriquecer un documento con valores de un vocabulario
Aade metadatos que pueden procesarse automticamente Objetivo: Facilitar descripcin de los contenidos Acercamiento a la Web Semntica Consiste en grupos de parejas nombre/valor
Microdatos
Atributo
itemscope
itemtype
Definicin
Contenedor de microdatos
Define tipo de tems
Valores
Valor booleano
Lista de URIs
itemid
itemref itemprop
URI
Identificador Nombre de la propiedad a declarar
Microdatos
Los valores de la propiedad definida en itemprop dependen del tipo de elemento:
Elemento
meta a, area, link
Valor
Valor de content Valor de href
Valor de src
Valor de data Valor de value
Resto de elementos
Contenido textual
Microdatos
Ejemplo:
<div itemscope itemtype="http://schema.org/Offer" itemid="http://ejemplo.org/Oferta24"> <h1 itemprop="name">Batidora</h1> <p>Precio: <span itemprop="price">19.95</span> <p itemscope itemprop="reviews" itemtype="http://schema.org/AggregateRating"> Puntuacin: <span itemprop="ratingValue">3</span> sobre <span itemprop="bestRating">5</span>. Basado en <span itemprop="ratingCount">25</span> usuarios </p> </div>
Accesibilidad
Accesibilidad y HTML5
WAI-ARIA (Accessible Rich Internet Applications)
Define roles para mejorar la accesibilidad
Rol
banner search navigation main contentinfo complementary application . . .
Valor
Cabecera Bsqueda Navegacin Cuerpo principal Informacin sobre el contenido Contenido complementario Identifica una aplicacin . . .
Fin de la Presentacin