Responsive images with srcset, sizes & heights
srcset
Use o atributo srcset
para controlar os recursos de um elemento com base em várias expressões de mídia. Use esse atributo principalmente para todas as tags amp-img
a fim de especificar quais recursos de imagem usar com base nos vários tamanhos de tela. O AMP irá gerar automaticamente o atributo sizes
, que está de acordo com a definição do HTML5 de sizes
, para todas as tags <img>
de <amp-img>
se o <amp-img>
tiver um atributo srcset
mas nenhum sizes
.
Neste exemplo simples, o srcset
especifica qual imagem usar com base na largura da tela. O descritor w
informa ao navegador a largura de cada imagem na lista:
<amp-img
alt="Hummingbird"
src="/static/inline-examples/images/hummingbird-wide.jpg"
width="640"
height="457"
layout="responsive"
srcset="/static/inline-examples/images/hummingbird-wide.jpg 640w,
/static/inline-examples/images/hummingbird-narrow.jpg 320w"
>
</amp-img>
w
em todos os navegadores. Saiba mais sobre como criar imagens responsivas com o srcset
em Como Usar Imagens Responsivas (Agora).
sizes
Também é possível usar o atributo AMP opcional sizes
junto com srcset
. O atributo AMP sizes
descreve como calcular o tamanho do elemento com base em qualquer expressão de mídia. A definição de sizes
em qualquer elemento AMP fará com que o AMP defina um estilo inline para a largura (width) naquele elemento de acordo com a media query correspondente. Baseado no tamanho calculado do elemento, o navegador seleciona a origem mais relativa fornecida pelo atributo srcset
.
Veja o seguinte exemplo:
<amp-img
alt="Hummingbird"
src="/static/inline-examples/images/hummingbird-wide.jpg"
width="640"
height="457"
srcset="/static/inline-examples/images/hummingbird-wide.jpg 640w,
/static/inline-examples/images/hummingbird-narrow.jpg 320w"
sizes="(min-width: 650px) 50vw, 100vw"
>
</amp-img>
O atributo sizes
define a largura do elemento como 50% do tamanho da janela de visualização, quando ela tiver 650px ou mais. Por exemplo, se a janela de visualização tiver 800px, a largura do elemento será definida como 400px. Em seguida, o navegador seleciona o recurso srcset
relativo a 400px, assumindo que a proporção de pixels do dispositivo seja 1, que neste caso é hummingbird-narrow.jpg
(320px).
responsive
por default. Saiba mais sobre os atributo AMP sizes
aqui
heights
Todos os elementos personalizados da AMP que permitem o layout responsive
também são compatíveis com o atributo heights
. O valor desse atributo é uma expressão de sizes baseada em expressões de mídia semelhante ao atributo img sizes, mas com duas diferenças importantes:
- Ele se aplica à altura e não à largura do elemento.
- Valores percentuais são permitidos, por exemplo:
86%
. Se um valor percentual for usado, ele indicará a porcentagem da largura do elemento.
Quando o atributo heights
for especificado juntamente com width
e height
, o layout
será responsive
, por default.
Exemplo:
<amp-img
alt="AMP"
src="/static/inline-examples/images/amp.jpg"
width="320"
height="256"
heights="(min-width:500px) 200px, 80%"
>
</amp-img>
Neste exemplo, a altura do elemento será 80% da largura por default, mas para as janelas de visualização maiores que 500px
, ela será truncada em 200px
.