Usar archivo de imagen SVG en HTML y CSS

Shubham Vora 20 junio 2023
  1. Use la etiqueta <img> para agregar un archivo SVG a la página web
  2. Use la etiqueta <objeto> para agregar un archivo SVG a la página web
  3. Use la etiqueta <embed> para agregar un archivo SVG a la página web
  4. Use la etiqueta <iframe> para agregar un archivo SVG a la página web
  5. Use la propiedad CSS background-image para agregar un archivo SVG como fondo
Usar archivo de imagen SVG en HTML y CSS

Este artículo introdujo la incrustación de imágenes SVG en páginas web usando HTML y CSS.

El archivo SVG es una imagen vectorial y su uso tiene muchas ventajas sobre el uso de png, jpeg, jpg u otros archivos de imagen. El principal beneficio del archivo SVG es que es independiente de la resolución, lo que significa que cuando lo escalamos a cualquier dimensión, la resolución o calidad de la imagen permanece sin cambios.

Además, el tamaño del archivo SVG es muy compacto, lo que disminuye el tiempo de carga de las páginas web. También podemos editar el archivo SVG en el editor de texto y hacerlo compatible con SEO agregando texto relacionado con palabras clave.

Además, podemos agregar animación a los archivos SVG mediante secuencias de comandos, que también es una de las mejores ventajas de usar archivos SVG.

Use la etiqueta <img> para agregar un archivo SVG a la página web

En esta sección, hemos utilizado la etiqueta <img> de HTML para representar archivos de imagen SVG en la página web. Hemos tomado dos íconos diferentes del svgrepo e incrustado su URL en la etiqueta src de la etiqueta <img>.

Código de ejemplo:

<img src="https://www.svgrepo.com/show/426102/camera.svg" alt="camera icon">
<img src="https://www.svgrepo.com/show/426942/transport.svg" alt="car icon">

En la imagen de salida anterior, los usuarios pueden ver el icono SVG de la cámara y el automóvil.

Use la etiqueta <objeto> para agregar un archivo SVG a la página web

La etiqueta HTML <objeto> permite a los usuarios representar multimedia como audio, video o archivos PDF en la página web.

Hemos usado dos atributos de la etiqueta objeto para mostrar el archivo SVG. El atributo data de <object> toma la ruta o URL local del archivo SVG.

El atributo tipo de la etiqueta <objeto> toma el tipo de archivo, y usaremos image/svg+xml como su valor para representar el archivo SVG.

Aquí, hemos renderizado los íconos de la cámara y el automóvil usando la etiqueta objeto.

<object data="https://www.svgrepo.com/show/426102/camera.svg" type="image/svg+xml"></object>
<object data="https://www.svgrepo.com/show/426942/transport.svg" type="image/svg+xml">

También podemos agregar la imagen alternativa dentro de la etiqueta <objeto>. En el siguiente ejemplo, tomamos la URL rota del icono de la cámara y agregamos la imagen alternativa.

Ahora, cuando los usuarios ejecuten el siguiente código, verán una imagen alternativa solo porque la URL del archivo SVG está rota.

<object data="https:/w.svgrepo.com/show/426102/camera.svg" type="image/svg+xml">
    <img src="https://yt3.ggpht.com/ytc/AMLnZu-K8Cu9BcdyoXT2AeAi7TJ744ADUCQyYblAoH9F=s900-c-k-c0x00ffffff-no-rj"
    style="height: 50px;width: 50px;" />
</object>
<object data="https://www.svgrepo.com/show/426942/transport.svg" type="image/svg+xml" >

En el resultado anterior, los usuarios pueden ver que muestra el logotipo de DelftStack, que es una imagen alternativa en lugar de un icono de cámara.

Use la etiqueta <embed> para agregar un archivo SVG a la página web

La etiqueta <embed> nos permite incrustar otras aplicaciones en la página web. Usaremos el atributo src y type con la etiqueta <embed> para incrustar el archivo SVG en la página web.

El atributo src toma la URL o ruta del archivo SVG, y tipo define el tipo de multimedia.

Aquí, hemos incrustado dos íconos SVG en la página web usando la etiqueta <incrustar>.

<embed src="https://www.svgrepo.com/show/426102/camera.svg" type="image/svg+xml">
<embed src="https://www.svgrepo.com/show/426942/transport.svg" type="image/svg+xml" >

Use la etiqueta <iframe> para agregar un archivo SVG a la página web

La etiqueta <iframe> permite a los desarrolladores incrustar el marco en línea dentro del documento. Proporciona un marco o bloque diferente a los recursos externos, como audio, video o multimedia.

Aquí, hemos usado la etiqueta <iframe> y hemos agregado la URL del archivo SVG dentro del atributo src. Además, no necesitamos especificar aquí qué tipo de multimedia queremos mostrar, como las etiquetas <incrustar> y <objeto>.

<iframe src="https://www.svgrepo.com/show/426102/camera.svg" height="50px">

El resultado anterior muestra que el ícono de la cámara está incrustado en bloques o marcos separados.

Use la propiedad CSS background-image para agregar un archivo SVG como fondo

La propiedad CSS background-image nos permite establecer la imagen de fondo para el elemento en particular. Aquí, hemos configurado el archivo SVG como imagen de fondo.

En el siguiente ejemplo, hemos creado la etiqueta <h3> y hemos agregado algo de texto. Además, hemos agregado una imagen SVG de fondo para eso usando la propiedad background-image de CSS.

Además, hemos agregado el color para el texto de <h3> y establecido background-repeat: no-repeat; para evitar la repetición de la imagen de fondo.

<h3>welcome to DelftStack!</h3>
h3{
  background-image: url("https://www.svgrepo.com/show/426102/camera.svg");
  background-repeat: no-repeat;
  color: red;
}

En este artículo, hemos aprendido los diferentes métodos para renderizar el archivo SVG usando HTML y CSS. Sin embargo, los usuarios también pueden agregar el archivo SVG a la página web directamente usando la etiqueta <SVG> de HTML.

Las etiquetas <img> y <object> permiten a los usuarios configurar la imagen alternativa si falla la carga del archivo SVG. Los usuarios pueden usar la etiqueta <embed> o <iframe> para incrustar el archivo de imagen SVG en un bloque separado.

Sin embargo, no se recomienda usar el <iframe> ya que afecta el SEO de la página web, pero los usuarios pueden usar el <objeto> o el <svg> en línea en su lugar.

Shubham Vora avatar Shubham Vora avatar

Shubham is a software developer interested in learning and writing about various technologies. He loves to help people by sharing vast knowledge about modern technologies via different platforms such as the DelftStack.com website.

LinkedIn GitHub