Le immagini
reattive
vengono spesso implementate utilizzando l'attributo
srcset
. L'attributo srcset
è un elenco separato da virgole di nomi file delle immagini e dei relativi descrittori di larghezza o densità. Per impedire variazioni del layout, imposta gli attributi width
e height
nei tag <img>
e <source>
che utilizzano srcset
.
Per le immagini adattabili che utilizzano descrittori di densità:
- Tutte le immagini elencate in
src
esrcset
devono avere le stesse proporzioni. - Imposta gli attributi
width
eheight
in modo che corrispondano alle dimensioni dell'immagine1x
. - L'attributo
src
deve fare riferimento all'immagine1x
.
Per le immagini adattabili che utilizzano descrittori di larghezza:
- Tutte le immagini elencate in
src
esrcset
devono avere le stesse proporzioni. - Imposta gli attributi
width
eheight
in modo che corrispondano alle dimensioni dell'immagine di riserva. - Regola lo stile dell'immagine in base alle esigenze: in assenza di stili CSS, le impostazioni
width
eheight
su un'immagine adattabile che utilizza descrittori di larghezza comportano il rendering dell'immagine sempre alle stesse dimensioni, anche se le immagini elencate insrcset
hanno dimensioni diverse. Questo comportamento potrebbe non essere ciò che desideri. L'aggiunta diwidth: 100%; height: auto;
owidth: 100vw; height: auto;
allo stile dell'immagine può ottenere l'aspetto visivo che desideri.
Per i tag <picture>:
- Imposta gli attributi
width
eheight
per tutti i tag<source>
: i valori appropriati diwidth
eheight
dipenderanno dal modo in cui il tag<source>
utilizzasrcset
. Per informazioni sull'utilizzo disrcset
, vedi sopra. - Regola lo stile dell'immagine: se devi regolare lo stile dell'immagine, tieni presente che l'aggiunta di stili a un tag
<source>
non avrà alcun effetto. Il tag<source>
è un elemento vuoto. Dovrai invece applicare uno stile al tag<img>
corrispondente. - Imposta gli attributi
width
eheight
nel tag<img>
: questi valori devono corrispondere alle dimensioni intrinseche dell'immagine di riserva.
HTML
<!-- Using density descriptors -->
<img width="480" height="330"
srcset="cat-1x.jpg, cat-2x.jpg 2x, cat-3x.jpg 3x"
src="cat-1x.jpg"
alt="Photo of a cat on a green background">
<!-- Using width descriptors -->
<img width="256" height="128"
srcset="dog-256w.jpg 256w, dog-512w.jpg 512w, dog-1028w.jpg 1028w"
src="dog-256w.jpg"
alt="Photo of a dog on a orange background">
<!-- Picture tag -->
<picture>
<source media="(max-width: 720px)" width="600" height="300" srcset="newyork-rectangle.jpg" />
<source media="(min-width: 721px)" width="600" height="600" srcset="newyork-square-1x.jpg, newyork-square-2x.jpg 2x, newyork-square-3x.jpg 3x" />
<img src="newyork-rectangle.jpg" width="600" height="300" alt="Photo of the Empire State Building">
</picture>