जगह आरक्षित करके SVG लोगो का लेआउट खिसकना रोकें
SVG लोगो के लिए चौड़ाई-ऊँचाई या CSS अनुपात से जगह रखें। ब्राउज़र की वास्तविक हलचल की तुलना करें, फिर भेजी इमेज और रिस्पॉन्सिव लेआउट जाँचें।
इस पेज पर
SVG लोगो तीखा रहते हुए भी दिखाई देते समय पास की सामग्री खिसका सकता है। HTML इमेज एलिमेंट से लोड बाहरी SVG के लिए ब्राउज़र को पर्याप्त आकार जानकारी दें, ताकि फ़ाइल के प्राकृतिक माप मिलने से पहले उसका बॉक्स आरक्षित हो सके। मिलते width और height एट्रिब्यूट उपयोगी शुरुआत हैं; CSS उस बॉक्स को रिस्पॉन्सिव बना सकता है।
यह पृष्ठ लेआउट की समस्या सुधारता है। लोगो के पाथ नहीं बदलता या कैनवास के अंदर खाली जगह नहीं हटाता। उपयोग योग्य वेक्टर मूल रखें। स्रोत केवल PNG या JPG हो तो संपादन योग्य चित्र अलग वापस बनाएँ और भेजे SVG को पृष्ठ में सोचकर स्थान दें।
ड्रॉइंग और उसका आरक्षित बॉक्स अलग समझें
तीन संबंधित माप जाँचें:
| वस्तु | क्या बताती है | कहाँ देखें |
|---|---|---|
| SVG चित्र और viewBox | स्रोत निर्देशांक आयत और उसके भीतर ड्रॉइंग | SVG स्रोत या वेक्टर एडिटर |
| लोड इमेज के प्राकृतिक माप या अनुपात | ब्राउज़र को इमेज से मिली जानकारी | लोड हुआ इमेज एलिमेंट |
| HTML लेआउट बॉक्स | पृष्ठ इमेज को कितनी जगह देता है | गणना की स्टाइल और एलिमेंट सीमाएँ |
viewBox="0 0 300 100" 3:1 स्रोत आयत बताता है। बाहरी फ़ाइल में वह जानकारी संसाधन के अंदर है, जिसे पृष्ठ को लाना है। यह संसाधन उपलब्ध होने से पहले आसपास की HTML में मिलता अनुपात रखने से अलग है।
MDN इमेज एलिमेंट संदर्भ इमेज लोड से पहले जगह देने के लिए चौड़ाई और ऊँचाई दोनों एट्रिब्यूट लेने को कहता है। Google की लेआउट खिसकने की जानकारी भी गायब इमेज माप को हलचल का आम कारण बताती है और माप या CSS अनुपात से जगह आरक्षित करना समझाती है।
समस्या पहले से बने व्यूपोर्ट में ड्रॉइंग फ़िट करने की हो तो अलग SVG अनुपात फ़िटिंग गाइड लें। बॉक्स आरक्षित करना और उसमें चित्र फ़िट करना अलग जाँच हैं।
मिलते चौड़ाई और ऊँचाई एट्रिब्यूट से शुरू करें
3:1 निशान का सरल उपयोग ऐसा हो सकता है:
<img
class="brand-logo"
src="/assets/brand-logo.svg"
width="300"
height="100"
alt="Example brand"
>.brand-logo {
display: block;
width: 300px;
max-width: 100%;
height: auto;
}एट्रिब्यूट इच्छित अनुपात देते हैं। CSS दिखने वाली चौड़ाई तय करता है और कंटेनर संकरा होने पर अनुपात में छोटा होने देता है। इससे लोगो को हर डिवाइस पर 300 भौतिक स्क्रीन पिक्सेल घेरना ज़रूरी नहीं।
असली इमेज कैनवास के माप लें, जिसमें इच्छित खुली जगह शामिल हो। भेजे SVG का स्रोत आयत चौड़ा हो तो दिखाई अक्षरों की सीमाएँ न भरें। इससे शुरुआती आरक्षण और लोड संसाधन मेल नहीं खाते।
मिलते मान ज़रूरी हैं, क्योंकि इमेज का प्राकृतिक अनुपात उपलब्ध होते ही प्रभावी हो सकता है। गलत शुरुआती अनुपात से बाद में आकार सुधार फिर भी हो सकता है। लोगो बदलने के बाद मार्कअप और भेजी फ़ाइल दोनों जाँचें; वही फ़ाइल नाम रखने से ज्यामिति वही रहती है, यह न मानें।
लेआउट स्लॉट तय करे तो CSS अनुपात लें
कंपोनेंट किसी खास बॉक्स आकृति को परिभाषित करे तो CSS अनुपात उपयोगी है। अनुपात वाली 3:1 इमेज के लिए:
.brand-logo {
display: block;
width: 300px;
max-width: 100%;
height: auto;
aspect-ratio: 3 / 1;
}MDN aspect-ratio संदर्भ बताता है कि प्रॉपर्टी स्वचालित आकार गणना में भाग लेती है। पसंदीदा अनुपात उन गणनाओं को प्रभावित करे, इसके लिए कम-से-कम एक आयाम स्वचालित रहना चाहिए। चौड़ाई और ऊँचाई दोनों स्थिर हों तो पहले वे स्पष्ट आकार देखें।
स्रोत अनुपात अलग हो तो इच्छित व्यवहार चुनें। स्थायी आकृति वाले स्लॉट को अपना रैपर और सोचा इमेज-फ़िट नियम चाहिए हो सकता है। अनुपात वाला लोगो सामान्यतः सही स्रोत अनुपात ले। केवल पुराना CSS बचाने के लिए वर्ग लोगो को पिछले वर्डमार्क की 3:1 ज्यामिति में न दबाएँ।
auto 3 / 1 रूप का अर्थ अलग है: यह बदले संसाधन वाले एलिमेंट को अस्थायी अनुपात दे सकता है, फिर प्राकृतिक अनुपात उपलब्ध होने पर उसे ले सकता है। अस्थायी और अंतिम अनुपात मिलने पर यह उपयोगी है; इससे विरोधी माप कभी कुछ नहीं खिसकाएँगे, इसकी गारंटी नहीं।
हमारे नियंत्रित ब्राउज़र उदाहरण में क्या दिखा
हमने F आकार निशान, बिंदु और तीर वाला मूल 300 × 100 SVG बनाया। तीन HTML इमेज एलिमेंट में शुरू में स्रोत URL नहीं था। पहले लेआउट के बाद बटन ने तीनों को वही स्थानीय SVG दिया। इससे धीमे नेटवर्क का माप होने का दिखावा किए बिना पहले और बाद की स्थिति दिखी।
तीनों की CSS चौड़ाई 300px और ऊँचाई स्वचालित थी। एक में आरक्षित अनुपात नहीं, एक में width="300" height="100" और एक में aspect-ratio: 3 / 1 था।
| स्थिति | पहले इमेज ऊँचाई | बाद में इमेज ऊँचाई | अगला टेक्स्ट खिसका |
|---|---|---|---|
| आरक्षित अनुपात नहीं | 0px | 100px | 100px नीचे |
| मिलते HTML माप | 100px | 100px | 0px |
| मिलता CSS अनुपात | 100px | 100px | 0px |

बिना आरक्षण वाली स्थिति में टेक्स्ट का ऊपरी निर्देशांक 358.1875 से 458.1875 हुआ। दोनों आरक्षित स्थितियों में वह 458.1875 रहा। हर लोड इमेज ने प्राकृतिक माप 300 × 100 बताए और दिखती चौड़ाई तथा ऊँचाई भी 300 × 100 रहीं।
ये एक ब्राउज़र में एक नियंत्रित पृष्ठ के वास्तविक एलिमेंट स्थिति माप हैं। प्रयोग ने मैनुअल URL दिया। इसमें नेटवर्क धीमा करने की ट्रेस, Core Web Vitals स्कोर या अलग ब्राउज़र व्यवहार दर्ज नहीं हुआ। विशेष रूप से, 100px हलचल दूरी है, CLS स्कोर नहीं।
केवल फ़ाइल नहीं, दिया गया कंपोनेंट जाँचें
सुधार सत्यापित करते समय लोगो की असली जगह लें:
- स्रोत पक्का करें। भेजा SVG खोलकर उसका कैनवास अनुपात देखें। तुलना के लिए बिना बदला मास्टर रखें।
- शुरुआती आकार देखें। जाँचें कि इमेज माप मिलने से पहले HTML या CSS इच्छित बॉक्स देता है।
- एलिमेंट स्थितियाँ मिलाएँ। केवल लोगो की तीक्ष्णता नहीं, पास का शीर्षक या नेविगेशन वस्तु देखें।
- लोड के बाद जाँचें। अंतिम चौड़ाई, ऊँचाई और अनुपात आरक्षण से मिलाएँ।
- संकरे और चौड़े कंटेनर आज़माएँ। पक्का करें कि रिस्पॉन्सिव नियम निशान अनुपात में छोटा करें और आसपास नियंत्रण उपयोग योग्य रहें।
ब्राउज़र लोड जाँच के लिए डेवलपर टूल में कैश बंद और उपयुक्त नेटवर्क सेटिंग रखकर वास्तविक पृष्ठ फिर लोड करें। यह हमारे बटन वाले उदाहरण से अलग स्थिति जाँचता है। पृष्ठ में लेज़ी-लोड इमेज हो तो उस जगह तक स्क्रॉल भी करें।
हलचल बची हो तो पहचानें कि उसी पल क्या बदला। फ़ॉन्ट बदलना, बैनर जुड़ना, नेविगेशन पंक्ति बढ़ना या दूसरी इमेज लोगो खिसका सकती है, चाहे उसका बॉक्स स्थिर हो। web.dev गाइड इमेज आकार और दूसरे लेआउट खिसकाव के कारण अलग करती है; एक लोगो की जगह आरक्षित करना पूरे साइट प्रदर्शन का ऑडिट नहीं।
पास की SVG समस्याएँ अलग रखें
बिना बदले इमेज बॉक्स के नीचे छोटी पट्टी इनलाइन टेक्स्ट लाइन की समस्या हो सकती है। इमेज के आरक्षित माप से अलग डिस्प्ले और ऊर्ध्व संरेखण देखें। टेक्स्ट लाइन में एलिमेंट खिसकाना और अनुपलब्ध इमेज के लिए जगह देना लेआउट के अलग समय संभालते हैं।
SVG स्थिर रहे लेकिन चौड़े खाली मार्जिन दिखें तो कैनवास या फ़िटिंग जाँच चाहिए। मार्जिन हटाने के लिए स्रोत क्रॉप करने से अनुपात बदलता है, इसलिए बाद में पृष्ठ का आरक्षण अपडेट करें। इनलाइन SVG और इमेज व्याख्या यह पहचानने में भी मदद करती है कि आप दस्तावेज़ एलिमेंट स्टाइल कर रहे हैं या बाहरी इमेज।
मूल निशान केवल पिक्सेल में हो तो PerfectVector के लोगो वेक्टराइज़र से संपादन योग्य संभावित आकृतियाँ तैयार करें। भेजने का कैनवास चुनने से पहले बाहरी आकार और खुलाव स्रोत से मिलाएँ; ट्रेस गुणवत्ता स्कोरकार्ड वह ज्यामिति जाँच समझाता है। वेक्टराइज़ेशन वेबसाइट के HTML माप, CSS अनुपात या लोड व्यवहार नहीं सेट करता।
आम सवाल
क्या केवल SVG viewBox लेआउट खिसकना रोकता है? बाहरी इमेज में viewBox लाए गए संसाधन के अंदर होता है। HTML लेआउट को मिलती आकार जानकारी दें, ताकि प्राकृतिक इमेज माप मिलने से पहले जगह आरक्षित हो सके, फिर अंतिम कंपोनेंट जाँचें।
क्या चौड़ाई-ऊँचाई एट्रिब्यूट रखते हुए SVG लोगो रिस्पॉन्सिव हो सकता है? हाँ। मिलते एट्रिब्यूट इच्छित अनुपात दे सकते हैं, जबकि CSS दिखती चौड़ाई नियंत्रित करके ऊँचाई स्वचालित रखता है। जाँचें कि भेजी फ़ाइल और रिस्पॉन्सिव नियम वे अनुपात बचाते हैं।
क्या तीखा SVG अच्छा CLS स्कोर सुनिश्चित करता है? नहीं। तीक्ष्णता चित्र की रेंडरिंग बताती है। CLS पूरे पृष्ठ की लेआउट अस्थिरता का है, जिसमें फ़ॉन्ट, जोड़ी सामग्री और दूसरे मीडिया शामिल हो सकते हैं। नियंत्रित उदाहरण की हलचल दूरी CLS स्कोर नहीं।
स्रोत
- web.dev — Cumulative Layout Shift सुधारें — गायब इमेज माप, जगह आरक्षण, दूसरे हलचल कारण और दूरी तथा CLS मेट्रिक का अंतर।
- MDN — HTML इमेज एलिमेंट — चौड़ाई-ऊँचाई एट्रिब्यूट, प्राकृतिक इमेज माप और इमेज लेआउट।
- MDN — aspect-ratio — स्वचालित आकार और तय अनुपात तथा auto के साथ अनुपात रूप का अंतर।
केवल रास्टर लोगो है? PerfectVector से संपादन योग्य SVG तैयार करें, सीमाएँ और कैनवास जाँचें, फिर उसे दिखाने वाले पृष्ठ में मिलती जगह आरक्षित करें।
Blog से और

इनलाइन SVG के नीचे की जगह CSS लेआउट से हटाएँ
पहचानें कि SVG के नीचे खाली जगह HTML लाइन बॉक्स की है या चित्र की, फिर ब्लॉक डिस्प्ले या इनलाइन संरेखण चुनकर परिणाम जाँचें।

डार्क मोड SVG लोगो: रंग का नियंत्रण तय करें
तय करें कि SVG लोगो उपयोगकर्ता की पसंद माने या पृष्ठ की थीम। ब्राउज़र परीक्षण में इनलाइन CSS, अनुकूल बाहरी फ़ाइल और निश्चित रंग वाले चित्र की तुलना करें।
