6.3. Cabecera¶
La cabecera del documento HTML es el contenido del elemento <head>
e incluye información ajena al contenido estricto de la página HTML.
Nota
El orden de los elementos de la cabecera es indiferente.
Define cuál es el título que el navegador mostrará en la barra superior de la ventana. |
- title (title)
Su único contenido posible es simple texto. Por ejemplo:
<title>Página de prueba</title>
Es el único elemento obligatorio que debe incluir la cabecera.
El resto de etiquetas las agruparemos en:
6.3.1. Etiquetas de complemento¶
Son aquellas que permiten indicar qué código Javascript o CSS complementa el contenido HTML de la página.
Permite declarar estilos CSS exclusivos para el documento |
|
Refiere o incrustar código Javascript |
- style (style)
Volveremos a esta etiqueta cuando tratemos cómo declarar el CSS aplicable a la página. Por ahora, bástenos con un ejemplo:
<style> table, table th, table td { border: solid black 1px; } </style>
Nota
Para referir estilo CSS que se encuentre en fichero aparte debe usarse <link>, que se explica un poco más adelante.
Nota
Al igual que con <link>, puede usarse un atributo
title
para dar nombre al estilo.
- script (script)
Podemos usarla de dos formas. Como
<style>
, escribiendo el código Javascript dentro del propio documento:<script> window.onload = function() { console.log("Hemos acabado de cargar la página"); } </script>
O bien, refiriendo dónde se encuentra el código para que el navegador lo cargue:
<script src="scripts/codigo.js"></script>
Advertencia
Ambas formas en un mismo elemento son incompatibles: o se incrusta el código o se refiere. Observe, además, cómo en el segundo caso se cierra el elemento sin usar el modo abreviado, ya que al ser un elemento que puede tener contenido, tal modo es ilegal.
Este elemento puede aparecer también dentro del cuerpo del documento.
Ver también
Aunque se escapa del propósito de estos apuntes, es importante tener presente cómo carga y ejecuta los scripts el navegador. El comportamiento predeterminado es que al encontrarse con una etiqueta
<script>
, el navegador para de procesar el HTML y se dedica a cargar y ejecutar el script. Por tanto, los elementos HTML posteriores al elemento<script>
no existirán aún y, en principio, no se podrán manipular. Sin embargo, cuando el script es externo, o sea, se usa el atributosrc
, este comportamiento puede alterarse mediante el uso de los atributosasync
ydefer
. Una lectura imprecindible para entender cómo actúan es este artículo somostechies.com.
Tanto al cargar una hoja de estilos como al cargar un script externos se puede forzar a que el navegador compruebe la integridad del fichero:
<script src="https://unpkg.com/leaflet@1.4.0/dist/leaflet.js"
integrity="sha512-QVftwZFqvtRNi0ZyCtsznlKSWOStnDORoefr1enyq5mVL4tmKB3S/EnC3rRJcxCPavG10IcrVGSmPh6Qw5lwrg==">
</script>
El navegador comprobará la integridad haciendo el equivalente a la siguiente orden:
$ wget -qO - 'https://unpkg.com/leaflet@1.4.0/dist/leaflet.js' | openssl dgst -sha512 -binary | base64
Ver también
Para más información consulte la developer.mozilla.org sobre SRI.
Es posible que al escribir código CSS o código Javascript usemos algún carácter que provoque que el navegador interprete mal y provoque algún fallo en el procesamiento de la página. Para evitarlo, podemos indicar al navegador que ambos códigos son secciones CDATA:
<style>
/*<![CDATA[*/
table, table th, table td {
border: solid black 1px;
}
/*]]>*/
</style>
<script>
//<![CDATA[
window.onload = function() {
alert("Ya se ha cargado la página");
}
//]]>
</script>
6.3.2. Etiquetas de relación¶
Son aquellas que permiten establecer relaciones con otros documentos.
Establece la URL base para resolver rutas relativas |
|
Establece una relación entre el documento y otro externo |
- base (base)
Al hablar sobre hiperenlaces se definió el concepto de ruta relativa relativa y cómo formar la ruta absoluta se concatenan la URL base y la ruta relativa relativa (a partir de ahora, ruta relativa a secas). Este elemento permite redefinir la URL base para sea una distinta a la que se esperaría. Así, si nuestro documento tiene la URL:
http://docs.iescdl.es/~josem/XML/05.web/01.html/03.head.html
su URL base es:
http://docs.iescdl.es/~josem/XML/05.web/01.html/
y las rutas relativas deberían añadirla para obtener la ruta absoluta. Sin embargo, este elemento permite definir una URL distinta. Por ejemplo:
<base href="http://docs.iescdl.es/~josem/XML/index.html">
En este caso, la URL base para los enlaces será:
http://docs.iescdl.es/~josem/XML/
El elemento permite también definir el valor predeterminado para el atributo target de <a>:
<base target="_blank">
- link (link)
Es el elemento que propiamente relaciona con documentos externos. Su uso es variado, pero se basa fundamentalmente en dar valor a dos de sus atributos:
rel
yhref
.El uso más habitual es definir para la página hojas de estilos CSS externas:
<link rel="stylesheet" href="estilos.css">
En este caso el navegador aplicará las reglas de estilo y, si añadimos otro elemento más:
<link rel="stylesheet" href="estilos.css"> <link rel="stylesheet" href="otrosestilos.css">
aplicará ambas. Sin embargo, puede añadirse un atributo
title
para nombrar al estilo:<link rel="stylesheet" href="estilos.css" title="clasico"> <link rel="stylesheet" href="otrosestilos.css" title="moderno"> <link rel="stylesheet" href="masestilos.css" title="clasico"> <link rel="stylesheet" href="siempre.css">
En este caso, tenemos:
Un estilo sin nombre, que el navegador aplica siempre, se encuentra en
siempre.css
.Un estilo de nombre «clasico» que se encuentra en las hojas de estilos
estilos.css
ymasestilos.css
.Otro estilo de nombre «moderno» que se encuentra en la hoja
otrosestilos.css
.
El navegador aplicará los estilos sin nombre y sólo uno de los nombrados («clasico» o «moderno» en el ejemplo). Cuál de los nombrados aplique el navegador, no está definido por la especificación, a menos que se especifique expresamente a través de un elemento <meta>.
Otro uso posible es definir versiones alternativas del documento en otros formatos o lenguas:
<link rel="alternate" href="03.head.pdf" type="application/pdf"> <link rel="alternate" href="03.head-fr.html" hreflang="fr">
Puede servir para definir cuál será el favicon:
<link rel="icon" href="/favicon.ico"> <link rel="apple-touch-icon" href="/apple-touch-icon.png" sizes="180x180">
Refiere a páginas que contienen información sobre determinados aspectos:
<link rel="author" href="http://twitter.com/SoyElAutor"> <link rel="licence" href="https://creativecommons.org/licenses/by/4.0/">
Facilita a los buscadores la navegación por las páginas del sitio:
<link rel="index" href="../../genindex.html" title="Índice"> <link rel="search" href="../../search.html" title="Búsqueda"> <link rel="next" href="04.basico.html" title="Elementso básicos"> <link rel="prev" href="02.estructura.html" title="Generalidades">
Ver también
Para conocer los valores que se pueden asignar al atributo rel consulte la documentación al respecto en MDN.
6.3.3. Etiquetas de metadatos¶
Son aquellas que ofrecen metainformación sobre el contenido de la página.
Declara metadatos |
- meta (meta)
Los metadatos pueden definirse de muy diversos modos, aunque lo habitual es que se distingan unos de otros a través del atributo name. Sin embargo, hay una excepción a ello muy importante: la definición de la codificación del documento:
<meta charset="UTF-8">
que es recomendable incluir siempre, aunque no sea obligatorio, ya que la codificación predeterminado para los documentos HTML es, precisamente UTF-8. Otros metadatos que sí se definen con el atributo
name
son:- Metadatos sobre el documento
Descripción del documento:
<meta name="desc" content="Cabecera del documento HTML5">
Autor del documento:
<meta name="author" content="Perico de los Palotes">
Generador (aplicación que ha generado la página web):
<meta name="generator" content="Sphinx">
Software con el que se ha creado la página.
Comportamiento de la ventana visible del navegador:
<meta name="viewport" content="width=device-width, initial-scale=1">
Consulte esta entrada para más información.
- Metadatos para buscadores
Palabras clave del documento, separadas por comas:
<meta name="keywords" content="html, head, html5, desarrollo web" >
Advertencia
Esta etiqueta no suelen usarla los buscadores, ya que se presta a que se rellene con multitud de términos simplemente con el fin de posicionar mejor la página.
Indica a los buscadores si debe indexar la página:
<meta name="robots" content="index, nofollow">
Se pueden indicar (no)index, (no)follow, (no)snippet (mostrar fragmentos de la página en el buscador), (no)archive (guardar cacheo), (no)imageindex (no indexar imágenes para los buscadores de imágenes), none (equivale a noindex y nofollow).
Fuera de este atributo
name
, hay otros metadatos:- Metadatos que equivalen a campos de cabecera HTTP:
Para definirlos se utiliza el atributo http-equiv. En este caso, el valor de
http-equiv
define el nombre del campo, y el valor del atributocontent
, el valor de ese mismo campo. Sin embargo, no pueden definirse metadatos para todos los campos definidos en el protocolo y, de hecho, la especificación sólo reconoce unos pocos, algunos de los cuáles, no obstante, desaconseja. Algunos interesantes son:Redirige a otra web después de un tiempo:
<meta http-equiv="refresh" content="20; url=http://docs.iescdl.es">
Define el estilo predeterminado:
<meta http-equiv="default-style" content="clasico">
En este caso,
content
introduce el nombre del estilo que el navegador debe considerar predeterminado y que debe coincidir con el nombre que se le haya dado a través del atributotitle
en los elementos <link> o <style>.También, aunque sólo para la variante HTML y no la XML, es aún permitido por la especificación content-type para definir el tipo de documento y la codificación:
<meta http-equiv="content-type" content="text/html; charset=utf-8">
Advertencia
Este método, que se usaba en la versión 4 de HTML y es aún adminitido, es mejor no usarlo, ya que es incompatible con el ya comentado charset, que es modo moderno de indicar la codificación. Se cita, simplemente, por razones históricas.
Prudencia
Otros valores para
http-equiv
, que llegaron a usarse, se consideraron en algún momento obsoletos y es probable que ya no tengan soporte en los navegadores:<!-- Cacheo --> <meta http-equiv="pragma" content="no-cache"> <meta http-equiv="cache-control" content="no-cache"> <!-- Caducidad del documento --> <meta http-equiv="expires" content="Mon, 11 Feb 2019 19:50:14 GMT">
- Metadatos para redes sociales
Algunas redes sociales como Facebook o Twitter son capaces de leer ciertos elementos
<meta>
con el objeto de crear automáticamente enlaces a la página:<head prefix="og: http://ogp.me/ns#"> <!-- Open Graph Data --> <meta property="og:type" content="article"> <meta property="og:title" content="Cabecera de HTML"> <meta property="og:image" content="files/head.jpg"> <meta property="og:description" content="Apuntes sobre la cabecera head de HTML"> <!-- Otras etiquetas --> </head>
Ver también
Puede echar un vistazo a la web del Open Graph Protocol
<!-- Twitter Card Data --> <meta name="twitter:card" content="summary_large_image"> <meta name="twitter:creator" content="@SoyYo"> <meta name="twitter:title" content="Cabecera de HTML"> <meta name="twitter:image:src" content="files/head.jpg"> <meta name="twitter:description" content="Apuntes sobre la cabecera head de HTML">
Ver también
En DigitalOcean tienen pequeño tutorial al respecto.
6.3.4. Ejercicios propuestos¶
Nota
Escriba el documento HTML completo, aunque deje sin contenido el cuerpo, y compruebe la validez de la solución usando a un validador adecuado.
Escribir la cabecera de un documento HTML que cumpla con lo siguiente:
El título de la página debe ser «Ejercicio 1».
La codificación de caracteres debe ser la que se esté utilizando para escribir el documento.
Se utiliza la librería JQuery (busque en internet un URL de donde obtenerla).
Indique el nombre del autor del documento.
Procure que se vea bien la página en dispositivos móviles.
Defina una redirección hacia
https://www.disney.com
a los 15 segundo de cargarse la página.Añada información para controlar cómo se verán los enlaces a la página desde Twitter.
Se utilizan dos hojas de estilo para la página:
Uno que se encuentra dentro del subdirectorio «estilos» dentro de un fichero llamado «aspecto.css».
Otra con las sentencias incluidas dentro del propio documento (escriba cualquier sentencia CSS válida).
Escribir la cabecera de un documento HTML que cumpla con lo siguiente:
El título de la página debe ser «Ejercicio 1».
La codificación de caracteres debe ser la que se esté utilizando para escribir el documento.
La página contendrá un mapa de OpenStreetMap gestionado con la librería Leaflet. Incluya la hoja de estilos y los scripts de Javascript que exige la documentación de Leaflet.
Indique el autor del documento.
Incluya una pequeña descripción del documento.
Indique que el favicon es el fichero logo.ico dentro del directorio images, que se encuentra en la raíz del servidor.
Añada un enlace para la página de índice (
index.html
) y otro enlace para la siguiente página (doc2.html
).Añada información para controlar cómo se veran los enlaces a la página desde Facebook.
Defina dos estilos alternativos para la página:
«estilo1», que se encuentra en las hojas de estilos
a.css
yb.css
«estilo2», que se encuentra en la hoja de estilos
c.css
.
Todos los archivos CSS se encuentran en el mismo directorio que el HTML. El estilo predeterminado es «estilo1».