इससे पहले कि आप जो पूछ रहे हैं, उस पर ध्यान दें, आइए इस बारे में थोड़ा समीक्षा करें कि viewportमेटा टैग पहले स्थान पर क्यों है। यहां मैं इकट्ठा हूं।
हमें viewportटैग की आवश्यकता क्यों है ?
व्यूपोर्ट एक ऐसा क्षेत्र है जहां वेब सामग्री देखी जा सकती है। आमतौर पर, प्रस्तुत पृष्ठ (वेब सामग्री) व्यूपोर्ट से बड़ा है। परिणामस्वरूप, हम आम तौर पर छिपी हुई सामग्री को देखने के लिए स्क्रॉलबार का उपयोग करते हैं (क्योंकि व्यूपोर्ट सब कुछ प्रदर्शित नहीं कर सकता है)। CSS डिवाइस अनुकूलन मॉड्यूल स्तर 1 से उद्धृत :
संकीर्ण व्यूपोर्ट डेस्कटॉप ब्राउज़रों में अच्छा दिखने के लिए डिज़ाइन किए गए दस्तावेज़ों के लिए एक समस्या है। परिणाम यह है कि मोबाइल ब्राउज़र विक्रेता एक निश्चित प्रारंभिक ब्लॉक आकार का उपयोग करते हैं, जो व्यूपोर्ट आकार से अलग है, और एक विशिष्ट डेस्कटॉप विंडो विंडो के करीब है। स्क्रॉलिंग या पैनिंग के अलावा, ज़ूमिंग का उपयोग अक्सर दस्तावेज़ के अवलोकन के बीच बदलने और दस्तावेज़ के विशेष क्षेत्रों पर ज़ूम इन करने और पढ़ने के लिए किया जाता है।
मोबाइल उपकरणों (और अन्य छोटे उपकरणों) में, प्रारंभिक युक्त ब्लॉक आमतौर पर व्यूपोर्ट से बड़ा होता है। उदाहरण के लिए, एक मोबाइल उपकरण जिसमें स्क्रीन की चौड़ाई 640pxहो सकती है, जिसमें एक प्रारंभिक ब्लॉक होता है 980px। इस मामले में, प्रारंभिक युक्त ब्लॉक सिकुड़ा हुआ है 640pxताकि इसे मोबाइल स्क्रीन में फिट किया जा सके। इस 640pxचौड़ाई (स्क्रीन की चौड़ाई) को क्या कहा जाता हैinitial-width व्यूपोर्ट है जो हमारी चर्चा के अनुकूल होगा।
तो .... हमें इस viewportटैग की आवश्यकता क्यों है ? खैर, आजकल हमारे पास मीडिया के प्रश्न हैं जो हमें मोबाइल उपकरणों के लिए डिज़ाइन करने की अनुमति देता है। हालाँकि, यह मीडिया क्वेरी वास्तविक व्यूपोर्ट की चौड़ाई पर निर्भर करता है । मोबाइल उपकरणों में, उपयोगकर्ता एजेंट स्वचालित रूप से प्रारंभिक व्यूपोर्ट आकार को एक अलग निश्चित (आमतौर पर प्रारंभिक व्यूपोर्ट आकार से बड़ा) की शैली देता है। इसलिए यदि किसी मोबाइल डिवाइस के व्यूपोर्ट की चौड़ाई तय की जाती है, तो मीडिया के प्रश्नों में हमारे द्वारा उपयोग किए जाने वाले CSS नियमों को केवल इसलिए निष्पादित नहीं किया जाएगा क्योंकि व्यूपोर्ट की चौड़ाई कभी नहीं बदलती है। का प्रयोग viewportटैग, हम कर सकते हैं को नियंत्रित वास्तविक व्यूपोर्ट की चौड़ाई (UA द्वारा स्टाइल किए जाने के बाद)। MDN से उद्धृत :
हालाँकि, यह तंत्र मीडिया के प्रश्नों का उपयोग करते हुए संकीर्ण स्क्रीन के लिए अनुकूलित पृष्ठों के लिए इतना अच्छा नहीं है - यदि वर्चुअल व्यूपोर्ट उदाहरण के लिए 980px है, तो मीडिया क्वेरीज़ जो 640px या 480px या उससे कम समय में कभी भी उपयोग नहीं की जाएगी, इस तरह की प्रभावशीलता को सीमित करती है उत्तरदायी डिजाइन तकनीक।
ध्यान दें कि viewportटैग वास्तविक व्यूपोर्ट की ऊंचाई भी बदल सकता है, न कि केवल चौड़ाई
viewport टैग की width
widthएक में viewportटैग करने के लिए अनुवाद किया है max-widthमें @viewportनियम। जब आप widthजैसा घोषित करते हैं device-width, यह नियम 100%में अनुवादित होता है @viewport। व्यूपोर्ट के आधार पर प्रतिशत मूल्य का समाधान किया जाता है initial-width। इसलिए यदि हम अभी भी उपरोक्त उदाहरण का उपयोग कर रहे हैं, तो max-widthमान का समाधान होगा 640px। जैसा कि आपको पता चला है, यह केवल निर्दिष्ट करता है max-width। min-widthस्वचालित रूप से किया जाएगा extend-to-zoom।
extend-to-zoom
आपका प्रश्न था कि वास्तव में विस्तार-टू-ज़ूम का मूल्य क्या है ? मैंने जो इकट्ठा किया है, वह वह मान है जिसका उपयोग व्यूपोर्ट को एक ज़ूम स्तर पर देखने के क्षेत्र में फिट करने के लिए विस्तार करने के लिए किया जाता है। दूसरे शब्दों में, यह एक व्यूपोर्ट आकार मान है जो निर्दिष्ट ज़ूमिंग मूल्य के आधार पर बदलता है। एक उदाहरण? यह देखते हुए कि max-zoomयूए स्टाइलशीट का मूल्य है 5.0और initial-widthहै 320px, <meta name="viewport" content="width=10">प्रारंभिक वास्तविक चौड़ाई का समाधान करेगा 64px। यह समझ में आता है क्योंकि अगर एक डिवाइस में केवल 320px है और केवल 5xसामान्य मूल्य को ज़ूम किया जा सकता है , तो न्यूनतम व्यूपोर्ट का आकार होगा 320px divided by 5, जिसका अर्थ है कि एक समय में केवल 64px दिखाना ( और नहीं 10pxक्योंकि वह 32x जूमिंग की आवश्यकता होगी!)। यह मान एल्गोरिथ्म द्वारा उपयोग किया जाएगा निर्धारित करने के लिए कैसे विस्तार करने के लिए (बदलें) min-widthऔर max-widthमूल्यों, जो वास्तविक व्यूपोर्ट चौड़ाई निर्धारित करने में एक भूमिका निभाएगा।
यह सब एक साथ डालें
तो अनिवार्य रूप से, के बीच क्या फर्क है <meta name="viewport" content="width=device-width, initial-scale=1.0">और <meta name="viewport" content="initial-scale=1.0">? बस एल्गोरिथ्म के चरणों को फिर से करें ( यह और यह )। चलो widthपहले ( विशेषता के बिना एक ) करते हैं। (हम मान लेंगे कि initial-widthव्यूपोर्ट का है 640px)
widthसेट नहीं है, में इस परिणाम max-widthऔर min-widthकिया जा रहा है extend-to-zoomमें @viewportनियम।
initial-scaleहै 1.0। इसका मतलब है कि zoomमूल्य भी है1.0
- आइए संकल्प करें
extend-to-zoom । कदम:
extend-zoom = MIN(zoom, max-zoom)। MINआपरेशन मूल्य है कि गैर है पर ले कर जाता auto। यहाँ, zoomहै 1.0और max-zoomहै auto। इस का मतलब है किextend-zoom है1.0
extend-width = initial-width / extend-zoom। यह आसान है; 640 को विभाजित करके 1. आपको मिलता extend-widthहै640
- क्योंकि
extend-zoomगैर है-auto , हम दूसरी शर्त पर छोड़ेंगे। max-widthवास्तव में extend-to-zoom, इसका मतलब यह है कि max-widthइसे सेट किया जाएगा extend-width। इस प्रकार,max-width = 640
min-width भी है extend-to-zoom , इसका मतलब है कि सेटिंग min-widthकरना max-width। हमें मिलाmin-width = 640
- गैर-
auto (यानी extend-to-zoom) मूल्यों के समाधान के बाद max-widthऔर min-width। हम अगली प्रक्रिया के लिए आगे बढ़ सकते हैं । क्योंकि min-widthया max-widthनहीं हैauto , हम पहले का उपयोग करेगा ifप्रक्रिया में है, इस प्रकार प्रारंभिक वास्तविक व्यूपोर्ट स्थापित करने widthके लिए MAX(min-width, MIN(max-width, initial-width))है, जो के बराबर है MAX(640, MIN(640, 640))। यह करने के लिए हल करता है640 आपके प्रारंभिक वास्तविक व्यूपोर्ट के लिएwidth
- अगली प्रक्रिया के लिए आगे बढ़ रहा है । इस चरण में,
widthनहीं है auto। मान नहीं बदला गया है और हम वास्तविक व्यूपोर्ट widthके साथ समाप्त होते हैं640px
चलो पूर्व करते हैं।
widthमें सेट किया गया है, इस परिणाम max-widthजा रहा है 100%(640px हमारे मामले में) और min-widthकिया जा रहा है extend-to-zoomमें@viewport नियम।
initial-scaleहै 1.0। इसका मतलब है किzoomमूल्य भी है1.0
- आइए संकल्प करें
extend-to-zoom । आप चरणों ध्यान से (लगभग ऊपर के रूप में ही) का पालन करें, तो आप एक साथ खत्म हो जाएगा max-widthकी 640pxऔर एकmin-width की640px ।
- आप शायद अब पैटर्न देख सकते हैं। हमें वास्तविक व्यूपोर्ट चौड़ाई मिलेगी
640px ।
तो कथित अंतर क्या है? अनिवार्य रूप से कोई नहीं । दोनों एक ही काम करते हैं। आशा है कि मेरी व्याख्या से मदद मिलती है ;-) अगर कुछ भी हो, तो मुझे बताएं।
1.0, लेकिन मैं इस पर अनिश्चित हूं। वैसे भी, महान जवाब, धन्यवाद!