इससे पहले कि आप जो पूछ रहे हैं, उस पर ध्यान दें, आइए इस बारे में थोड़ा समीक्षा करें कि 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
, लेकिन मैं इस पर अनिश्चित हूं। वैसे भी, महान जवाब, धन्यवाद!