← Back to HTML Course | Chapter 8: Modern HTML & Components | Lesson 8 of 10

HTML Picture Element

सोचिए आप अपने डेस्कटॉप कंप्यूटर पर एक वेबसाइट ब्राउज़ कर रहे हैं। होमपेज पर एक वर्कस्पेस की बड़ी, widescreen पैनोरैमिक इलस्ट्रेशन दिख रही है। यह बहुत खूबसूरत लगती है। लेकिन जब आप वही पेज अपने स्मार्टफोन पर लोड करते हैं, तो वह widescreen इमेज फिट होने के लिए सिकुड़ जाती है। यह एक छोटी, दबी हुई पट्टी बन जाती है जिसमें आपको कोई डिटेल नहीं दिखती। और भी बुरा, आपके फोन को वह बड़ी फाइल डाउनलोड करनी पड़ी, जिससे डेटा बर्बाद हुआ और लोड स्पीड धीमी हो गई। HTML picture एलिमेंट यह समस्या हल करता है। यह एक smart art director की तरह काम करता है। यह आपको अलग-अलग स्क्रीन साइज़ के लिए अलग-अलग इमेज वेरिएशन बताने देता है। आप डेस्कटॉप्स को widescreen इलस्ट्रेशन, मोबाइल फोन्स को स्क्वायर क्रॉप किया हुआ वर्ज़न, और जो डिवाइसेस सपोर्ट करते हैं उन्हें मॉडर्न, हाइली कंप्रेस्ड इमेज फॉर्मेट परोस सकते हैं।
Syntax
markup
<picture>
  <source media="(min-width: width)" srcset="image-large.jpg">
  <img src="image-default.jpg" alt="Description">
</picture>

picture कंटेनर

picture टैग एक रिस्पॉन्सिव इमेज कंटेनर है जिसमें कई source टैग्स और एक सिंगल img टैग fallback होता है। ब्राउज़र हर source टैग के मीडिया नियमों का मूल्यांकन करता है, और सिर्फ पहली मैचिंग इमेज फाइल को लोड और डिस्प्ले करता है।

Note:
  • पुराने ब्राउज़र्स के लिए fallback के रूप में अपने picture एलिमेंट के अंदर हमेशा एक स्टैंडर्ड img टैग शामिल करें।
  • Accepted attributes:
  • source srcset — image URL(s)
  • source media — media query
  • source type — MIME type such as image/webp | image/avif
  • source sizes — sizes list
  • img src / alt — required fallback
Warning: picture टैग सिर्फ एक wrapper है; अगर आप इसके अंदर fallback img टैग शामिल नहीं करते, तो इमेज नहीं दिखेगी।

उदाहरण: The picture Container

markup
<picture>
  <source srcset="photo.webp" type="image/webp">
  <img src="photo.jpg" alt="A photo">
</picture>

रिस्पॉन्सिव Art Direction

Art direction का मतलब है अलग-अलग स्क्रीन लेआउट शेप्स को फिट करने के लिए अलग-अलग इमेज कंपोज़िशन्स (जैसे square crops या अलग-अलग orientations) सर्व करना। यह आप source टैग्स के media एट्रिब्यूट्स के अंदर रिस्पॉन्सिव मीडिया क्वेरीज़ सेट करके करते हैं।

Note:
  • अपनी इलस्ट्रेशन के मुख्य डिटेल्स पर ध्यान केंद्रित करने के लिए मोबाइल डिवाइसेज़ पर square-cropped इमेजेज़ का उपयोग करें।
  • Accepted attributes:
  • source media — e.g. (min-width: 800px)
  • source srcset — image URL(s)
  • img src / alt — fallback
Warning: स्केलिंग के दौरान लेआउट बिगड़ने से बचने के लिए सुनिश्चित करें कि आपकी इमेज के aspect ratios आनुपातिक हों।

उदाहरण: Responsive Art Direction

markup
<picture>
  <source media="(max-width: 600px)" srcset="photo-square.jpg">
  <img src="photo-wide.jpg" alt="A photo">
</picture>

मॉडर्न इमेज फॉर्मैट्स सर्व करना

मॉडर्न इमेज फॉर्मैट्स (जैसे WebP या AVIF) पुराने JPEGs या PNGs की तुलना में कहीं बेहतर कंप्रेशन देते हैं, जिससे फाइल साइज़ छोटी और लोड स्पीड तेज़ बनी रहती है।

अपने source टैग्स के अंदर फॉर्मैट टाइप्स बताकर, आप मॉडर्न ब्राउज़र्स को WebP फाइल्स सर्व कर सकते हैं जबकि पुराने सिस्टम्स के लिए स्टैंडर्ड JPEGs पर फॉलबैक कर सकते हैं।

Note:
  • अपने source टैग्स के type एट्रिब्यूट के अंदर हमेशा अपनी इमेज फॉर्मैट्स की mime-type बताएँ।
  • Accepted attributes:
  • source type — image/avif | image/webp | image/jpeg | image/png | image/svg+xml
  • source srcset — image URL(s)
  • img src / alt — fallback
Warning: अगर आप type एट्रिब्यूट नहीं बताते, तो ब्राउज़र फाइल फॉर्मेट को सही तरीके से parse नहीं कर पाएगा।

उदाहरण: Serving Modern Image Formats

markup
<picture>
  <source srcset="photo.avif" type="image/avif">
  <source srcset="photo.webp" type="image/webp">
  <img src="photo.jpg" alt="A photo">
</picture>

नेटवर्क बैंडविड्थ ऑप्टिमाइज़ करना

अगर आपकी साइट मोबाइल स्क्रीन्स पर बड़ी widescreen इमेजेज़ लोड करती है, तो आप यूज़र का डेटा बर्बाद कर रहे हैं और अपनी लोड स्पीड धीमी कर रहे हैं।

picture टैग यह सुनिश्चित करके redundant डाउनलोड्स रोकता है कि ब्राउज़र सिर्फ एक मैचिंग source फाइल ही डाउनलोड करे, बाकी विकल्पों को इग्नोर करते हुए।

Note: अपनी साइट की लोड स्पीड ऑप्टिमाइज़ करने और सर्वर बैंडविड्थ बचाने के लिए picture टैग्स का उपयोग करें।
Warning: अपनी इमेज फाइल पाथ को अलग-अलग source टैग्स में दोहराएं नहीं, क्योंकि इससे ब्राउज़र भ्रमित हो सकता है।

उदाहरण: Optimizing Network Bandwidth

markup
<picture>
  <source media="(max-width: 600px)" srcset="small.jpg">
  <source media="(min-width: 601px)" srcset="large.jpg">
  <img src="large.jpg" alt="A photo">
</picture>

picture पर Accessibility

चूंकि ब्राउज़र source टैग्स का उपयोग सिर्फ यह चुनने के लिए करता है कि कौन-सी फाइल पाथ लोड करनी है, असली इमेज रेंडरिंग नेस्टेड img टैग द्वारा हैंडल होती है। इसका मतलब है कि आपको अपने alt text विवरण उसी fallback img टैग के अंदर सीधे लिखने चाहिए।

Note: अपना alt text fallback img टैग पर लिखें; source टैग्स पर alt एट्रिब्यूट्स न लिखें।
Warning: अपने fallback img टैग पर alt एट्रिब्यूट न देने से आपका पूरा picture एलिमेंट स्क्रीन रीडर्स के लिए अदृश्य हो जाता है।

उदाहरण: Accessibility on picture

markup
<picture>
  <source srcset="photo.webp" type="image/webp">
  <img src="photo.jpg" alt="A red bicycle leaning against a wall">
</picture>
Live Example
Related Topics
{# common_mistakes/chapter_summary/browser_support: on Hindi pages the view already swaps in the hi_ translation fields (or blanks these out if untranslated), so this renders correctly for both languages without a lang_code check here. #}

Login to run this code

C/C++/Java/PHP execution requires a free account. Your code is saved — you'll land right back in the editor after logging in.