ximg.es

Gerador de srcset e picture

Escolha a proporção, as larguras e o modo como a imagem ocupa a página, e leve o <img srcset> ou o <picture> prontos. Os URL são do ximg.es, por isso funcionam mal são colados.

Proporção
Separadas por vírgulas. Entre 16 e 4000, até 12.
Largura ocupada na página (sizes)
Formatos modernos (com JPG como alternativa) Se escolher algum, é gerado também um <picture>.

<picture> com AVIF e WebP

<picture>
  <source type="image/avif"
    srcset="https://ximg.es/480x270.avif?text=480w 480w,
            https://ximg.es/800x450.avif?text=800w 800w,
            https://ximg.es/1200x675.avif?text=1200w 1200w,
            https://ximg.es/1600x900.avif?text=1600w 1600w"
    sizes="(min-width: 1024px) 960px, 100vw">
  <source type="image/webp"
    srcset="https://ximg.es/480x270.webp?text=480w 480w,
            https://ximg.es/800x450.webp?text=800w 800w,
            https://ximg.es/1200x675.webp?text=1200w 1200w,
            https://ximg.es/1600x900.webp?text=1600w 1600w"
    sizes="(min-width: 1024px) 960px, 100vw">
  <img
    src="https://ximg.es/800x450.jpg?text=800w"
    srcset="https://ximg.es/480x270.jpg?text=480w 480w,
            https://ximg.es/800x450.jpg?text=800w 800w,
            https://ximg.es/1200x675.jpg?text=1200w 1200w,
            https://ximg.es/1600x900.jpg?text=1600w 1600w"
    sizes="(min-width: 1024px) 960px, 100vw"
    width="1600" height="900"
    alt="Descrição da imagem" loading="lazy" decoding="async">
</picture>

<img> com srcset

<img
  src="https://ximg.es/800x450.jpg?text=800w"
  srcset="https://ximg.es/480x270.jpg?text=480w 480w,
          https://ximg.es/800x450.jpg?text=800w 800w,
          https://ximg.es/1200x675.jpg?text=1200w 1200w,
          https://ximg.es/1600x900.jpg?text=1600w 1600w"
  sizes="(min-width: 1024px) 960px, 100vw"
  width="1600" height="900"
  alt="Descrição da imagem" loading="lazy" decoding="async">

Pré-visualização: que imagem escolhe o navegador?

Descrição da imagem

O que fazem o srcset e o sizes

O srcset dá ao navegador uma lista de versões da mesma imagem com a respetiva largura real (800x450.jpg 800w). O sizes indica que largura a imagem vai ocupar na página consoante o tamanho do ecrã. Com as duas coisas, e sabendo a densidade de píxeis do ecrã, o navegador escolhe o ficheiro mais pequeno que fique nítido. Decide-o antes de paginar, por isso precisa que o sizes lho diga.

Como escolher as larguras

img com srcset ou picture

Se só muda o tamanho, basta <img srcset sizes>. O <picture> é necessário para oferecer formatos que nem todos os navegadores entendem: cada <source> tem um type e o navegador usa o primeiro que sabe ler, por isso o AVIF vem antes do WebP e o JPG do <img> fica como alternativa. Também serve para a «direção de arte»: recortes diferentes consoante o ecrã, com media.

Pormenores que se esquecem

Os URL do código são do gerador ximg.es e cada imagem tem a largura escrita, por isso o HTML pode ser colado na maquete para ver de relance que versão carrega em cada ecrã. Quando houver fotografias reais, basta trocar os URL.

Perguntas frequentes

Qual é a diferença entre srcset e sizes?

O srcset lista os ficheiros disponíveis com a largura real; o sizes diz que largura a imagem vai ocupar na página. O navegador cruza ambos com a densidade do ecrã para escolher.

O que acontece sem sizes?

O navegador assume 100vw, toda a largura do ecrã, e no computador transfere imagens muito maiores do que o necessário se a imagem estiver numa coluna.

Porque é que o navegador transfere uma imagem maior do que o esperado?

Por causa da densidade de píxeis: num ecrã 2x, uma imagem que ocupa 400 px precisa de um ficheiro de 800. Além disso, se já tiver em cache uma versão maior, pode usá-la em vez de transferir a pequena.

É preciso picture para usar WebP ou AVIF?

Sim, se quiser uma alternativa para navegadores que não os suportam. Hoje qualquer navegador lê WebP, por isso muitos sites já colocam o WebP diretamente no srcset do <img>.

O sizes vai em cada source do picture?

Sim, cada <source> com descritores w precisa do seu sizes. O <img> lá dentro também o leva para o formato alternativo.

Podem usar-se estes URL do ximg.es em produção?

São placeholders: servem para maquetar e confirmar que o navegador escolhe bem. Quando houver imagens reais, substitua os URL mantendo as mesmas larguras.

Mais ferramentas

Ver todas as ferramentas · Gerador de imagens placeholder