تصاویر واکنشگرا اغلب با استفاده از ویژگی srcset
پیاده سازی می شوند. ویژگی srcset
لیستی از نام فایل های تصویری جدا شده با کاما و توصیف کننده های عرض یا چگالی آنها است. برای جلوگیری از تغییر چیدمان، ویژگی های width
و height
را روی تگ های <img>
و <source>
که از srcset
استفاده می کنند، تنظیم کنید.
برای تصاویر واکنشگرا که از توصیفگرهای چگالی استفاده میکنند:
- همه تصاویر فهرست شده در
src
وsrcset
باید دارای نسبت تصویر یکسان باشند. - ویژگی های
width
وheight
را برای مطابقت با ابعاد تصویر1x
تنظیم کنید. - ویژگی
src
باید به تصویر1x
اشاره داشته باشد.
برای تصاویر واکنشگرا که از توصیفگرهای عرض استفاده می کنند:
- همه تصاویر فهرست شده در
src
وsrcset
باید نسبت تصویر یکسانی داشته باشند. - ویژگی های
width
وheight
را برای مطابقت با ابعاد تصویر بازگشتی تنظیم کنید. - استایل تصویر را در صورت نیاز تنظیم کنید: در صورت عدم وجود هر گونه استایل CSS، تنظیم
width
وheight
روی یک تصویر واکنشگرا که از توصیفگرهای عرض استفاده می کند باعث می شود تصویر همیشه در همان اندازه ارائه شود - حتی اگر تصاویر فهرست شده درsrcset
ابعاد متفاوتی داشته باشند. این رفتار ممکن است آن چیزی نباشد که شما می خواهید. افزودنwidth: 100%; height: auto;
یاwidth: 100vw; height: auto;
یک ظاهر طراحی شده به تصویر شما ممکن است ظاهر بصری مورد نظرتان را به شما بدهد.
برای برچسب های <picture>:
- تنظیم ویژگی های
width
وheight
برای همه تگ های<source>
: مقادیر مناسب برایwidth
وheight
به نحوه استفاده تگ<source>
ازsrcset
بستگی دارد. (برای اطلاعات در مورد کار باsrcset
به بالا مراجعه کنید.) - تنظیم استایل تصویر: اگر نیاز به تنظیم استایل تصویر دارید، به خاطر داشته باشید که افزودن استایل به تگ
<source>
تاثیری نخواهد داشت - تگ<source>
یک عنصر خالی است. در عوض، باید تگ<img>
مربوطه را استایل کنید. - صفات
width
وheight
را در تگ<img>
تنظیم کنید: این مقادیر باید با اندازه ذاتی تصویر بازگشتی مطابقت داشته باشند.
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>