क्या मुझे अधिकतम-डिवाइस-चौड़ाई या अधिकतम-चौड़ाई का उपयोग करना चाहिए?


82

CSS मीडिया क्वेरी के साथ आप max-device-widthडिवाइस की चौड़ाई (जैसे कि iPhone या Android डिवाइस) और / या max-widthजो पृष्ठ की चौड़ाई को लक्षित करता है, को लक्षित करने के लिए उपयोग कर सकते हैं ।

यदि आप उपयोग करते हैं max-device-width, जब आप अपने डेस्कटॉप पर ब्राउज़र विंडो का आकार बदलते हैं, तो सीएसएस नहीं बदलेगा, क्योंकि आपका डेस्कटॉप आकार नहीं बदलता है।

यदि आप उपयोग करते हैं max-width, जब आप अपने डेस्कटॉप पर ब्राउज़र विंडो का आकार बदलते हैं , तो आपको मोबाइल-उन्मुख स्टाइलिंग, जैसे स्पर्श-अनुकूल तत्व और मेनू और उस तरह की चीज़ दिखाई जा सकती है।

विशिष्ट ब्राउज़रों (और उपकरणों?) को लक्षित करना अब पदावनत कर दिया जाता है और आप जो लक्ष्य करते हैं उसके साथ आपको थोड़ा और अज्ञेयवादी होना चाहिए। क्या यह मीडिया के प्रश्नों पर भी लागू होता है?

आप क्यों एक दूसरे पर निशाना साधेंगे? कौन से एक की सिफारिश की है?

यह एक मीडिया क्वेरी का उदाहरण है जिसका मैं उत्पादन वेबसाइट पर उपयोग करता हूं:

@media only screen and (min-device-width: 320px) and (max-device-width: 480px) and (min-device-height: 480px) and (max-device-height: 640px) {  
    /* Change a menu to fit the screen better, etc... */
}

मैं दोनों का उपयोग करते हैं max-device-widthऔर max-width


2
उपकरण-चौड़ाई अब पदावनत है developer.mozilla.org/en-US/docs/Web/CSS/@media/device-width
Yukulélé

जवाबों:


113

टी एल; डॉ

यदि आप एक उत्तरदायी वेबसाइट बना रहे हैं, तो स्क्रीन आकार की एक विस्तृत श्रृंखला को लक्षित करने के बजाय / अपने मीडिया प्रश्नों का उपयोग करें min-width/ max-widthकरें ।min-device-widthmax-device-width

2018 मीडिया क्वैरीज़ लेवल 4 विनिर्देश ड्राफ्ट के अनुसार , device-widthमीडिया फ़ीचर पदावनत है । इसे पिछड़ी अनुकूलता के लिए रखा जाएगा, लेकिन इसे टाला जाना चाहिए।

8. परिशिष्ट A: पदावनत मीडिया सुविधाएँ

व्यूपोर्ट के आकार (या पेज मीडिया पर पेज बॉक्स) के लिए क्वेरी करने के लिए width, heightऔर aspect-ratioमीडिया सुविधाओं का उपयोग किया जाना चाहिए, बजाय device-width, device-heightऔर device-aspect-ratio, जो डिवाइस के भौतिक आकार को संदर्भित करता है, भले ही कितनी जगह उपलब्ध हो। दस्तावेज तैयार किया जा रहा है। device-*मीडिया सुविधाओं को भी कभी कभी मोबाइल उपकरणों का पता लगाने के लिए एक प्रॉक्सी के रूप में इस्तेमाल कर रहे हैं। इसके बजाय, लेखकों को मीडिया विशेषताओं का उपयोग करना चाहिए जो उस उपकरण के पहलू का बेहतर प्रतिनिधित्व करते हैं जिसे वे शैली के खिलाफ करने का प्रयास कर रहे हैं।

एक साइड नोट के रूप में, अपने दस्तावेज़ के अनुभाग में एक व्यूपोर्ट मेटा टैग निर्दिष्ट करना याद रखें <head>:

<meta name="viewport" content="width=device-width, initial-scale=1">

व्याख्या

सभी अलग-अलग संभावित स्क्रीन रिज़ॉल्यूशन और पिक्सेल डेंसिटी के कारण दिए गए डिवाइस हो सकते हैं, एक पिक्सेल पिक्सेल नहीं है क्योंकि ध्यान में रखने के लिए कई चीजें हैं (ज़ूम, पिक्सेल घनत्व, स्क्रीन रिज़ॉल्यूशन और आकार, डिवाइस ओरिएंटेशन, पहलू अनुपात, आदि)। ..)। इस मामले में, एक पिक्सेल को वास्तव में एक भौतिक हार्डवेयर पिक्सेल के बजाय "ऑप्टिकल संदर्भ इकाई" के रूप में संदर्भित किया जाता है ।

सौभाग्य से, आप ब्राउज़र के व्यूपोर्ट की चौड़ाई और स्केलिंग को नियंत्रित करने के लिए अपने दस्तावेज़ के अनुभाग में एक व्यूपोर्ट मेटा टैग निर्दिष्ट कर सकते हैं <head>। यदि इस टैग का contentमान है width=device-width, तो स्क्रीन की चौड़ाई डिवाइस से स्वतंत्र पिक्सेल से मेल खाएगी और यह सुनिश्चित करेगी कि सभी अलग-अलग उपकरणों को स्केल और लगातार व्यवहार करना चाहिए।

<meta name="viewport" content="width=device-width, initial-scale=1">

मीडिया के प्रश्नों के संदर्भ में, आप शायद max-widthइसके बजाय उपयोग करना चाहेंगे max-device-width, क्योंकि max-widthव्यूपोर्ट (वर्तमान ब्राउज़र विंडो) max-device-widthको लक्षित करेगा , जबकि डिवाइस के वास्तविक पूर्ण स्क्रीन आकार / रिज़ॉल्यूशन को लक्षित करेगा।

दूसरे शब्दों में, यदि आप उपयोग कर रहे हैं, तो आपको max-device-widthअपने डेस्कटॉप ब्राउज़र का आकार बदलते समय लागू विभिन्न मीडिया क्वेरी दिखाई नहीं देगी, क्योंकि इसके विपरीतmax-width , केवल डिवाइस की वास्तविक पूर्ण स्क्रीन आकार को ध्यान में रखा जाता है; ब्राउज़र विंडो का वर्तमान आकार नहीं।

यदि आप एक अनुकूली लेआउट बनाने का प्रयास कर रहे हैं तो इससे बहुत बड़ा अंतर पड़ता है क्योंकि ब्राउज़र को आकार देते समय साइट उत्तरदायी नहीं होगी। इसके अलावा, यदि आप max-device-widthउन मीडिया क्वेरीज़ का उपयोग कर रहे हैं, जिनका उपयोग आप छोटे स्क्रीन वाले उपकरणों को लक्षित करने के लिए कर रहे हैं, तो डेस्कटॉप विंडो पर आकार बदलने के बावजूद भी छोटे स्क्रीन आकार से मेल नहीं खाएंगे।

2018 तक, नवीनतम मीडिया क्वेरी विनिर्देश ड्राफ्ट ने वास्तव में device-widthमीडिया सुविधा को हटा दिया है , इसलिए इसे टाला जाना चाहिए।

इसके अलावा, Google डेवलपर्स पर यह लेख अत्यधिक इसके उपयोग को हतोत्साहित करता है max-device-width:

Google डेवलपर्स - वेब फंडामेंटल्स - उत्तरदायी सीएसएस मीडिया क्वेरी

इसके आधार पर प्रश्नों का निर्माण भी संभव है *-device-width; हालांकि यह प्रथा दृढ़ता से हतोत्साहित है

अंतर सूक्ष्म लेकिन बहुत महत्वपूर्ण है: min-widthब्राउज़र विंडो min-device-widthके आकार पर आधारित है , जबकि स्क्रीन के आकार पर आधारित है। दुर्भाग्य से कुछ ब्राउज़र, जिसमें विरासत एंड्रॉइड ब्राउज़र भी शामिल है, डिवाइस की चौड़ाई को ठीक से रिपोर्ट नहीं कर सकता है और इसके बजाय अपेक्षित सिग्नल चौड़ाई के बजाय डिवाइस के पिक्सल में स्क्रीन का आकार रिपोर्ट कर सकता है।

इसके अलावा, उपयोग करने *-device-widthसे सामग्री को डेस्कटॉप या अन्य डिवाइसों पर उपयोग करने से रोका जा सकता है जो विंडोज़ को आकार देने की अनुमति देते हैं क्योंकि क्वेरी वास्तविक डिवाइस आकार पर आधारित होती है, न कि ब्राउज़र विंडो के आकार पर।

आगे की पढाई:


2
आपकी हर बात से सहमत हैं, लेकिन इसके पीछे की अनुकूलता को भूलकर, कुछ वर्षों में यह प्रासंगिक नहीं होगा। डेस्कटॉप साइट को अलग तरीके से क्यों काम करना चाहिए क्योंकि हमारे पास अब मोबाइल हैं?
जॉन मैगनोलिया

2
मुझे नहीं लगता कि एक मोबाइल साइट को कभी भी डेस्कटॉप पर प्रदर्शित किया जाना चाहिए। आपको ब्राउज़र को किसी भी चौड़ाई में आकार देने और क्षैतिज स्क्रॉलबार का उपयोग करने में सक्षम होना चाहिए। मान लीजिए कि आप 2 साइटों के एक भाग की तुलना करना चाहते हैं, लेकिन साइडबार को छिपाते हैं, तो आप 2 खिड़कियों में खुलेंगे और पक्ष द्वारा पक्ष लेंगे
जॉन मैगनोलिया

3
मैं जॉन एम से सहमत हूं, Google गलत है, मैंने व्यक्तिगत रूप से उनके उत्तरदायी डिजाइन 'प्रलेखन' को सबसे खराब सनक से भरा कुछ सामान पाया है, जिसे केवल इसलिए दिया गया है क्योंकि जो बच्चे इसे लिखते हैं वे Google द्वारा नियोजित हैं। मैंने शुरू में इसे बढ़ा दिया था, लेकिन मेरे विचार में इसका उत्तर गलत है, सिर्फ इसलिए कि अधिक से अधिक साइटें अपने डेस्कटॉप उपयोगकर्ता अनुभव को बर्बाद कर रही हैं, पूरी तरह से गैर-जरूरी एक आकार फिट करने के लिए सभी उत्तरदायी सीएसएस ढांचे (केवल मेरे समय में देव समय काटने के लिए किया जाता है) राय), इसका मतलब यह नहीं है कि आपको अपने डेस्कटॉप उपयोगकर्ता के अनुभव को बर्बाद करना होगा। हम ऐसा नहीं करते हैं, और 10x तक रूपांतरण बढ़ा दिए हैं।
छिपकली

"यदि इस टैग का सामग्री मूल्य है width=device-width, तो स्क्रीन की चौड़ाई डिवाइस के स्वतंत्र पिक्सेल से मेल खाएगी।" और अगर आप एक iOS डिवाइस पर ब्राउज़ कर रहे हैं, तो इसके बजाय dps, क्या होगा? आईओएस अंक? (इस पोस्ट के लिए बहुत बहुत धन्यवाद, वैसे!)
in_flight

जवाब थोड़ा पुराना है। इसमें कुछ भी गलत नहीं है max-device-widthऔर यह महत्वपूर्ण है यदि आप इसका उपयोग रिसिस्टेबल व्यूपोर्ट वातावरण (डेस्कटॉप) में करना चाहते हैं। min-device-widthअभी भी बुरा है।
शॉर्टफ्यूज

6

उपकरण-चौड़ाई से बचें। कारण यह है कि आप यह नहीं जान सकते कि उपयोगकर्ता ब्राउज़र किस तरह से इसका जवाब देते हैं।

IOS के लिए, यह आसान लगता है, कम से कम सफारी के साथ। यह अभिविन्यास से स्वतंत्र एक एकल डिवाइस-चौड़ाई प्रतिक्रिया प्रतीत होती है। इसके अलावा, डिवाइस-चौड़ाई केवल डिवाइस के छोटे पक्ष के लिए बताई गई है। मैंने iPhone 4S और iPad पर यह परीक्षण किया। उन्होंने 320 और 768 का जवाब दिया, चाहे वह किसी भी तरह का हो।

Android के लिए यह अधिक अप्रत्याशित है। मैंने एक Huawei चढ़ना Y330 (Android डिफ़ॉल्ट ब्राउज़र, क्रोम, ओपेरा, फ़ायरफ़ॉक्स, फ़ायरफ़ॉक्स बीटा, डॉल्फिन) पर छह ब्राउज़रों का परीक्षण किया। ब्राउज़र प्रकार और अभिविन्यास के आधार पर प्रतिक्रिया भिन्न होती है।

मैंने क्वेरी (अधिकतम-डिवाइस-चौड़ाई: *** px) वाले पृष्ठ पर परीक्षण किया और यह पता लगाने के लिए कि क्वेरी को वास्तविक स्थिति में लाने के लिए मुझे किस px-value को भरने की आवश्यकता है। ब्राउज़र प्रकार और अभिविन्यास के आधार पर चार अलग-अलग मानों की आवश्यकता थी (320, 480, 534, 800)। यह डिवाइस-चौड़ाई को अनुपयोगी बनाता है।


1
डिवाइस-चौड़ाई उपयोगकर्ता द्वारा उपयोग किए जाने वाले डिवाइस को जानने का एकमात्र विश्वसनीय तरीका है ताकि आप लेआउट को तदनुसार समायोजित कर सकें। जब आप व्यूपोर्ट में पिक्सेल के आधार पर लेआउट को समायोजित करते हैं, तो आप कुछ डेस्कटॉप पर मोबाइल डिज़ाइन के साथ समाप्त हो जाते हैं, क्योंकि उपयोगकर्ता ज़ूम इन करता है। अक्सर इसका परिणाम यह होता है कि उपयोगकर्ता जो चाहता था (जो कि केवल थोड़ा आवर्धन होता है)
ऐलिस वंडर

आपको मोबाइल ब्राउज़रों के साथ बग रिपोर्ट दर्ज करनी चाहिए जो सटीक उपकरण-चौड़ाई की रिपोर्ट नहीं करते हैं। कई मामलों में, मैंने पाया कि वैकल्पिक ब्राउज़र डिफ़ॉल्ट रूप से सेट किए गए थे, यह दिखावा करने के लिए कि वे एक डेस्कटॉप ब्राउज़र थे और सीएसएस पिक्सेल प्रति 1 डिवाइस पिक्सेल का उपयोग करते थे - और संभवत: आपको जो समस्या हो रही थी।
एलिस वंडर

5

यदि आप अधिकतम-चौड़ाई का उपयोग करते हैं, जब आप अपने डेस्कटॉप पर ब्राउज़र विंडो का आकार बदलते हैं, तो आपको मोबाइल-ओरिएंटेड स्टाइलिंग, जैसे स्पर्श-अनुकूल तत्व और मेनू और उस तरह की चीज़ दिखाई जा सकती है।

यह मेरे लिए चौंकाने वाला है कि यह लोकप्रिय राय है कि यह वांछनीय है। गलत या सही कारणों से मोबाइल खराब होने से पहले मुझे पता नहीं चला कि द्रव / तरल डिजाइन क्या है। यह मुझे प्रतीत होता है कि यह तरल लेआउट का सिर्फ एक कट्टर संस्करण है, लेकिन एक यह है कि डिजाइनर किसी कारण से गले लगा रहे हैं।

जब बड़े पैमाने पर डिजाइन समुदाय ने 2000 के दशक के मध्य में तरल पर निश्चित लेआउट के साथ चुना, यह इसलिए था क्योंकि पाठ प्रतिक्षेप ने अक्सर विधवाओं और अन्य टाइपोग्राफिकल कलाकृतियों के परिणामस्वरूप विरासत को बाधित किया। इसके अतिरिक्त, कोडबेस को बनाए रखने के लिए डिजाइन से डिजाइन करने के लिए अक्सर ट्रिकी किया गया था ताकि तत्वों को टकराने से बचाया जा सके। तरल लेआउट और उत्तरदायी डिजाइन के बीच एकमात्र अंतर यह है कि बेहतर ब्राउज़र और चिनाई जैसी रूपरेखा के प्रसार के कारण इसे पूरा करना आसान हो जाता है।

मैं व्यक्तिगत रूप से न्यूनतम / अधिकतम-डिवाइस-चौड़ाई का उपयोग करता हूं क्योंकि मैं डेस्कटॉप दस्तावेज़ सम्मेलनों का पालन करना पसंद करता हूं जिनमें दशकों की पूर्वता है। इंटरनेट पर आपके द्वारा खोले गए सभी दस्तावेज़ डेस्कटॉप पर इस तरह का व्यवहार नहीं करने वाले हैं, और न ही अन्य प्रकार के दस्तावेज़ या एप्लिकेशन हैं जिन्हें आप अपने डेस्कटॉप पर लोड करते हैं। मोबाइल के प्रभुत्व से पहले डिज़ाइन किए गए पृष्ठ, जैसे MS Word, Photoshop, आदि उनकी स्क्रॉल स्थिति रखते हैं और अपने लेआउट को परिवर्तित नहीं करते हैं, जिससे उपयोगकर्ता विंडो प्रबंधन के असंबंधित कार्य को करते समय पृष्ठ प्रवाह के भीतर सामग्री का ट्रैक रख सकते हैं।

मैं आमतौर पर 3 ब्रेकप्वाइंट का उपयोग करता हूं: एक फोन के लिए, एक टैबलेट के लिए और एक डेस्कटॉप के लिए। डेस्कटॉप और अक्सर कम से कम लैंडस्केप पोर्ट्रेट तय होते हैं और टैबलेट पोर्ट्रेट और नीचे तरल होते हैं। अनुकूली और उत्तरदायी का यह संयोजन डेस्कटॉप को डेस्कटॉप साइट की तरह व्यवहार करने की अनुमति देता है, जबकि मुझे 10 से अलग-अलग निश्चित चौड़ाई वाले मोबाइल डिवाइस लेआउट लेआउट की आवश्यकता होती है। पाठ मोबाइल उपकरणों पर नहीं दिखता है क्योंकि व्यूपोर्ट का आकार बदला नहीं जा सकता है।


2
कुछ मोबाइल हैं जहां व्यूपोर्ट को आकार दिया जा सकता है - उदाहरण के लिए विंडोज़ स्क्रीन पर कई ऐप को "स्नैप" करने की अनुमति देता है, और कुछ एंड्रॉइड फोन में एक बार में दो ऐप देखने के लिए विंडोिंग के लिए समर्थन होता है। वस्तुतः मैं यह नहीं देखता कि आप छोटे स्क्रीन वाले डेस्कटॉप पर टैबलेट स्टाइल लेआउट क्यों नहीं चाहते हैं, लेकिन यह विषय लेआउट पर निर्भर करता है।
मार्क

2
मैं मिनट / अधिकतम-डिवाइस-चौड़ाई का भी उपयोग कर रहा था, लेकिन फिर मेरे आतंक के कारण एक ग्राहक ने हॉटज़र स्थापित किया, जो आपकी साइट के साथ उपयोगकर्ता के संपर्क के बहुत कम वीडियो बनाता है, और मुझे एहसास हुआ कि नया एंड्रॉइड 6 सैमसंग गैलेक्सी 6 मिनट की पिक्सेल गणना का इलाज कर रहा था / वास्तविक स्क्रीन पिक्सल के रूप में अधिकतम डिवाइस-चौड़ाई, सीएसएस पिक्सल नहीं, जो निश्चित रूप से पृष्ठ को स्क्रीन से दूर जाने के लिए बनाते हैं। हमारे मामले में यह हुआ कि उपयोगकर्ताओं को इन 4x पिक्सेल घनत्व स्क्रीन के साथ मोबाइल और डेस्कटॉप सीएसएस का मिश्रण मिल रहा था। व्यक्तिगत रूप से मेरा मानना ​​है कि उत्तरदायी उपयोगकर्ताओं के लिए खराब डेस्कटॉप प्रदर्शन पर कोई स्थान नहीं है। तो सावधान रहें।
छिपकली

2
पॉल, यह पता लगाने के लिए कुछ शोध की आवश्यकता है कि क्या हो रहा है। जोश का जवाब मेरी राय में गलत है, जैसा कि गूगल का है। यह धारणा कि डेस्कटॉप संवेदनशील होना चाहिए, यह सिर्फ एक सनक है जैसे कि Google जैसे समूहों द्वारा ईंधन और विभिन्न एक आकार सभी ढाँचों में फिट होते हैं। हमारा मुद्दा खराब हॉटज़र प्रोग्रामिंग, अवधि से आया है। मेरे ट्रिगर पॉइंट मूल रूप से किसी भी बड़े स्क्रीन वाले डिवाइस को डेस्कटॉप के रूप में मानते हैं, कुछ ट्वीक्स के साथ, फिर नीचे जाएं जहां व्यू पोर्ट केवल एक मोबाइल डिवाइस होगा। स्पष्टता की तलाश करने वाले उपयोगकर्ताओं के लिए, मैं पॉल के उत्तर को सही मानूंगा, और सनक के जवाबों को गलत माना जाएगा।
छिपकली

1
FYI करें - 2018 तक, *-device-widthमीडिया फीचर वास्तव में नवीनतम मीडिया क्वेरी विनिर्देश ड्राफ्ट - draft.csswg.org/mediaqueries-4/#mf-deprecated
Josh Crozier

यह एक पुराना जवाब है लेकिन 2014 में भी मैं इससे असहमत हूं। संदर्भित टाइपोग्राफिक त्रुटियां और 'तत्व टकराने' को अच्छी प्रथाओं का पालन करने की आदत बनाने से इतनी आसानी से बचा जाता है। स्क्रीन रिज़ॉल्यूशन पागल और सच हो रहा है, स्केलेबल, उत्तरदायी डिज़ाइन केवल अधिक महत्वपूर्ण होने जा रहा है क्योंकि समय बीत जाता है जबकि निश्चित साइटें केवल अधिक दुर्गम हो जाएंगी।
छोटे छोटे आदमी
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.