Imaginile constituie adesea peste 60-70% din greutatea totală a unei pagini web. Standardul HTML5 oferă două instrumente complementare pentru rezolvarea acestei provocări: atributele srcset și sizes (pentru scalarea automată în funcție de rezoluția ecranului) și elementul <picture> (pentru servirea formatelor moderne de ultimă generație precum AVIF și WebP cu fallback automat).
<picture>
<!-- 1. Dacă browserul suportă AVIF (cel mai compact format, comprimare superioară) -->
<source srcset="produs.avif" type="image/avif">
<!-- 2. Dacă browserul suportă WebP (suportat în 98% din browsere) -->
<source srcset="produs.webp" type="image/webp">
<!-- 3. Imaginea de fallback obligatorie (JPEG clasic pentru browsere vechi) -->
<img src="produs.jpg" alt="Laptop ultraportabil din aluminiu" width="800" height="500" loading="lazy" decoding="async">
</picture>
<picture>
<!-- Pe ecrane mari (>= 768px): afișăm imaginea panoramică de tip banner orizontal -->
<source media="(min-width: 768px)" srcset="banner-desktop.webp">
<!-- Pe ecrane mici (mobil): afișăm o versiune decupată vertical (portret) -->
<source media="(max-width: 767px)" srcset="banner-mobil-crop.webp">
<img src="banner-default.jpg" alt="Campania de Black Friday 2026" width="1200" height="400">
</picture>
De ce specificarea lățimii și a înălțimii (width & height) este critică
Atributele width și height de pe tagul <img> nu forțează o dimensiune rigidă în pixeli dacă ai în CSS regula max-width: 100%; height: auto;. În schimb, ele îi permit browserului să calculeze instantaneu proporția de aspect (Aspect Ratio) a imaginii și să rezerve spațiul gol pe ecran înainte ca fișierul să fie descărcat din rețea, eliminând complet salturile vizuale de conținut (CLS = 0).