HTML: Elemento <link>

El elemento <link> permite proveer información relacionada entre el documento HTML actual y un recurso externo enlazado, como puede ser el caso de las hojas de estilo en cascada (CSS), las fuentes o tipografías, y los iconos de página, también llamados «faviconos» (del inglés: favorites icons).

La etiqueta de este elemento es <link>, y sólo tiene etiqueta de apertura; por tanto no tiene etiqueta de cierre. Se trata de un elemento vacío cuyo contenido se especifica a través de sus variados atributos. Su atributo más importante es rel, ya que con él se indica la relación entre el documento enlazado con el actual.

Es posible introducir tantos elementos <link> como sean necesarios, y es obligatorio que estén anidados dentro de la cabecera: dentro de las etiquetas del elemento <head>. El elemento <link> no crea una caja visible. Lo importante es que se cargue el recurso enlazado y esté bien relacionado.

Ejemplo de código HTML de varios elementos <link>:

<head>
  <link rel='stylesheet' href='estilos.css'>
  <link rel='icon' type='image/x-icon' href='favicono.ico'>
  <link rel='preload' href='fuente.woff2' as='font'>
  <link rel='canonical' href='https://recursivos.com/html/link/'>
</head>

Atributos

Los atributos del elemento <link> ofrecen una gran variedad de posibilidades, pues se trata de un elemento con mucho potencial. Por tanto, sus atributos son importantes para definir correctamente la utilidad del elemento.

El atributo ‘href’

El atributo href se utiliza para definir la URL con la ubicación o ruta del recurso enlazado. La URL puede ser absoluta o relativa. Se trata del atributo más importante de este elemento, y por tanto, su uso es obligatorio.

El atributo ‘rel’

El atributo rel es el que permite indicar el tipo de recurso enlazado. Puede contener una lista no ordenada de tipos de vínculos únicos, que estarán separados por un espacio en blanco. Por ejemplo, para añadir un archivo de hojas de estilo en cascada (CSS) debe usarse el valor stylesheet.

Lista de valores más usados del atributo rel para <link>:

Valor Descripción
alternate Define un tipo de recurso alternativo.
author Define el autor de una página.
bookmark Indica el enlace permanente de un artículo con múltiples secciones.
canonical Especifica el enlace permanente para evitar contenido duplicado.
dns-prefetch Especifica que el navegador web debe resolver de forma preventiva las DNS del recurso enlazado.
help Indica que el enlace conduce a un recurso que aporta ayuda sobre el sitio web actual.
icon Indica que el recurso enlazado es un icono. Es posible añadir varios iconos diferentes usando otros atributos en combinación. Se trata de los siguientes atributos: media, type y sizes.
license Indica que el enlace conduce a un recurso que aporta información legal sobre licencia.
manifest Indica que el recurso enlazado aporta información sobre el «manifiesto de aplicaciones web» (Web App Manifest).
modulepreload Especifica que el navegador web debe almacenar el módulo del recurso enlazado para una posterior evaluación.
next Indica que el enlace conduce al recurso siguiente en una secuencia de artículos o páginas.
pingback Indica la dirección URL del servidor con el programa encargado de gestionar los pingbacks al documento actual. El pingback es un sistema de comunicación automática entre dos webs cuando una enlaza a la otra; es un aviso de citación.
preconnect Especifica que el navegador web debe conectarse de forma preventiva al recurso enlazado.
prefetch Especifica que el navegador web debe recuperar y almacenar de forma preventiva el recurso enlazado, pensando en tenerlo disponible en la navegación siguiente.
preload Especifica que el navegador web debe recuperar y almacenar de forma preventiva el recurso enlazado, pensando en el contexto de navegación actual.
prerender Especifica que el navegador web debe recuperar, almacenar y procesar de forma preventiva el recurso enlazado, así se ayuda a tener una entrega más rápida del recurso.
prev Indica que el enlace conduce al recurso anterior en una secuencia de artículos o páginas.
search Indica que el enlace conduce a un recurso que puede ser usado para realizar búsquedas en el sitio web.
serviceworker Indica el registro de un «trabajador de servicio» (Service Worker) en un documento o mediante un encabezado.
stylesheet Indica que el recurso enlazado es una hoja de estilo en cascada (CSS) que define estilos sobre el documento actual.

El atributo ‘crossorigin’

Con el atributo crossorigin se indica si una petición HTTP debe presentar credenciales de origen cruzado (CORS). De esta manera, con el mecanismo CORS los servidores pueden especificar quién puede acceder al recurso que se encuentra a un dominio diferente al actual. Sus valores posibles son:

Estos son los valores posibles:

Valor Descripción
anonymous Con este valor no se envían credenciales cuando se hace una solicitud de origen cruzado.
use-credentials Con este valor se envían credenciales cuando se realiza una solicitud de origen cruzado.

El atributo ‘media’

El atributo media permite especificar una lista de tipos de medio (media types) para los cuales el recurso enlazado ha sido diseñado. Por ejemplo, si se trata de una hoja de estilo en cascada (CSS) con diseño pensado para la impresora, su valor será print. El valor por defecto es all (todos).

Lista de valores posibles:

Valor Descripción
print Diseño para la impresora.
screen Diseño para pantallas.
all Diseño para todos los tipos de medio.

El atributo ‘integrity’

Con el atributo integrity se puede verificar la integridad del recurso enlazado y que el navegador web pueda asegurarse de que el recurso no ha sido manipulado. Este atributo sólo debe ser declarado cuando el valor del atributo rel es uno de los siguientes: stylesheet, preload o modulepreload.

El valor del atributo integrity será un hash que debe estar codificado en Base64. La sintaxis de este valor debe ser, en primera instancia, el prefijo del algoritmo utilizado (por ejemplo: sha256, sha384 o sha512). A este prefijo le sigue un guión normal (-) y finalmente se indica el hash.

Ejemplo de uso del atributo integrity:

<link
  rel='stylesheet'
  href='https://recursivos.com/assets/css/style.css'
  integrity='sha256-yLGHRkK85JGUMJsevPaKCQ4gYknL2SIGgERVBSiP/Ks='>

El atributo ‘hreflang’

El atributo hreflang permite especificar el idioma que se utiliza en el recurso enlazado. Se trata de un atributo informativo, y se recomienda usarlo sólo si el atributo href está presente, como es lógico; de nada serviría indicar el idioma de un recurso que no se ha especificado en el mismo elemento.

El atributo ‘type’

El atributo type permite indicar el tipo de medio (Mime Type) que se enlaza. Existen muchos tipos de medio y por tanto es importante revisar la lista completa para tener claro el que sea más conveniente. Por ejemplo, si el recurso es un archivo .css, el tipo de medio será el siguiente: text/css.

El atributo ‘referrerpolicy’

El atributo referrerpolicy se utiliza para indicar la política de referencia que se ha usado en el lado del cliente. La política de referencia se envía al servidor cuando se obtiene el recurso enlazado. Puede tener los valores siguientes:

Valor Descripción
no-referrer No se envía ningún dato de referente con las solicitudes.
no-referrer-when-downgrade Valor predeterminado. Como referente se envía el origen, la ruta y la cadena de consulta cuando el nivel de seguridad es el mismo (de HTTPS a HTTPS), pero no se envía a destinos menos seguros (de HTTPS a HTTP).
origin Se envía sólo el origen (esquema, host y puerto) del documento.
origin-when-cross-origin Se envía el origen del documento para una solicitud de origen distinto; pero se envía el origen, la ruta y la cadena de consulta para una solicitud con el mismo origen.
unsafe-url Se envía la referencia con el origen y la ruta. Este caso no es seguro porque puede filtrar el origen y la ruta de orígenes protegidos por TLS a orígenes que no estén protegidos.

El atributo ‘sizes’

El atributo sizes permite definir los tamaños de los iconos enlazados. Para que este atributo se tome en cuenta, el valor del atributo rel debe uno de los dos siguientes: icon o la extensión registrada apple-touch-icon.

Si el icono está en formato vectorial —es decir, Mime Type: image/svg+xml—, el valor del atributo rel puede ser any; teniendo el formato vectorial, el icono puede ser escalado a cualquier tamaño.

Ejemplo de un icono en formato vectorial:

<link rel='icon' href='icono.svg' sizes='any'>

En cambio, si el icono es un mapa de bits, el valor del atributo rel será una lista de tamaños separados por espacios en blanco. Cada tamaño se especificará indicando, en valores numéricos enteros, el ancho de la imagen en píxeles, seguido la letra x y el alto de la imagen en píxeles.

Ejemplo de un icono en mapa de bits:

<link rel='icon' href='icono.png' sizes='16x16 32x32 64x64'>

El atributo ‘imagesrcset’

El atributo imagesrcset es idéntico al atributo srcset usado en las imágenes. Se utiliza para proveer varias imágenes pensando en distintos tamaños de dispositivo. Su valor será una lista de imágenes con sus tamaños, separando cada imagen de la siguiente por una coma. Por cada imagen, se indica:

  1. Una URL válida de imagen (valor mínimo).
  2. Opcionalmente, uno de los siguientes valores:
    • El ancho de imagen en píxeles y la letra w.
    • La densidad del píxel con la letra x.

Por lo tanto, primero se introduce la URL de la imagen, luego un espacio en blanco y finalmente un descriptor del punto 2; sólo se admite uno. Si no se especifica ningún descriptor de tamaño, se tomará por defecto el valor 1x.

Ejemplo de código HTML del atributo imagescrset:

<link
  rel='icon'
  href='icono.png'
  scrset='icono-400.png 400w,
          icono-500.png 500w,
          icono-600.png 600w'>

El atributo ‘imagesizes’

El atributo imagesizes funciona de igual manera que el atributo sizes usado en los elementos de imagen. Debe usarse junto con el atributo imagescrset, por lo que es importante que este último esté definido. Con el atributo imagesizes se indica un listado de tamaños válidos separados por coma. Así:

  1. Una propiedad CSS entre paréntesis; es opcional.
  2. El ancho de la imagen en unidades de CSS.

Ejemplo de código HTML del atributo imagesizes:

<img
  rel='icon'
  href='icono.png'
  scrset='icono-400.png 400w,
          icono-500.png 500w,
          icono-600.png 600w'
  sizes='(max-width: 400px) 400px,
          (max-width: 500px) 500px,
          600px'>

El atributo ‘as’

El atributo as indica el tipo de contenido que se enlaza con el elemento <link>, así se indica su propósito a nivel semántico una vez se ha recuperado. Se usa cuando el valor del atributo rel es preload o prefetch.

Este atributo no tiene un valor por defecto, y su valor puede ser una de las siguientes palabras clave: fetch, audio, document, embed, font, image, manifest, object, report, script, serviceworker, sharedworker, style, track, video, worker y xslt.

← Artículo anterior
Artículo siguiente →