रिस्पॉन्सिव इमेज को अक्सर srcset
एट्रिब्यूट के साथ लागू किया जाता है. srcset
एट्रिब्यूट, इमेज फ़ाइल के नामों और उनकी चौड़ाई या डेंसिटी डिस्क्रिप्टर की एक ऐसी सूची होती है जिसे कॉमा लगाकर अलग किया जाता है.
लेआउट शिफ़्ट से बचने के लिए, <img>
और srcset
का इस्तेमाल करने वाले <source>
टैग पर width
और height
एट्रिब्यूट सेट करें.
डेंसिटी डिस्क्रिप्टर
सघनता डिस्क्रिप्टर का इस्तेमाल करने वाली रिस्पॉन्सिव इमेज बनाने के लिए:
src
औरsrcset
में लिस्ट की गई सभी इमेज का आसपेक्ट रेशियो एक जैसा होना चाहिए.width
औरheight
एट्रिब्यूट को इस तरह सेट करें कि वे1x
इमेज के डाइमेंशन से मेल खाएं.src
एट्रिब्यूट की वैल्यू,1x
इमेज से जुड़ी होनी चाहिए.
चौड़ाई के ब्यौरे
चौड़ाई के ब्यौरे का इस्तेमाल करने वाली रिस्पॉन्सिव इमेज बनाने के लिए:
src
औरsrcset
में दी गई सभी इमेज का आसपेक्ट रेशियो (लंबाई-चौड़ाई का अनुपात) एक जैसा होना चाहिए.width
औरheight
एट्रिब्यूट, फ़ॉलबैक इमेज के डाइमेंशन से मेल खाने चाहिए.- इमेज की स्टाइल में ज़रूरत के हिसाब से बदलाव करें. सीएसएस के बिना, अगर आपने किसी ऐसी रिस्पॉन्सिव इमेज पर
width
औरheight
को सेट किया है जिसमें चौड़ाई के डिस्क्रिप्टर हैं, तो इमेज हमेशा उसी साइज़ में रेंडर होगी. यह बात तब भी लागू होती है, जबsrcset
में शामिल की गई इमेज के डाइमेंशन अलग-अलग होते हैं. ऐसा हो सकता है कि यह तरीका आपकी पसंद के मुताबिक न हो.width: 100%; height: auto;
याwidth: 100vw; height: auto;
को अपनी इमेज स्टाइल में जोड़ें. इससे आपको अपना मनचाहा विज़ुअल लुक मिल सकता है.
इमेज एलिमेंट
रिस्पॉन्सिव <picture>
एलिमेंट बनाने के लिए:
- सभी
<source>
टैग के लिए,width
औरheight
एट्रिब्यूट सेट करें. इन एट्रिब्यूट के लिए सही वैल्यू इस बात पर निर्भर करती हैं कि<source>
टैग,srcset
का इस्तेमाल कैसे करता है. - इमेज में बदलाव करने के लिए, उससे जुड़े
<img>
टैग को स्टाइल दें.<source>
टैग एक खाली एलिमेंट है और इसलिए, इसका कोई असर नहीं पड़ता. <img>
टैग परwidth
औरheight
एट्रिब्यूट सेट करें. ये वैल्यू, फ़ॉलबैक इमेज के असली साइज़ से मेल खानी चाहिए.
उदाहरण
एचटीएमएल
<!-- 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>