CSS Academy · पाठ

मेसनरी लेआउट: CSS और JS तरीके

CSS column-count और JavaScript फ़ॉलबैक रणनीतियों से Pinterest-शैली के मेसनरी ग्रिड बनाएँ।

पाठ 3, कुल 4 में से13 चरण

मेसनरी लेआउट: CSS और JS तरीके, CoddyKit पर CSS Academy का एक निःशुल्क पाठ है। यह 4 में से 3वाँ पाठ है। आप नीचे पूरा पाठ निःशुल्क पढ़ सकते हैं—फिर अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर के साथ ब्राउज़र में इसका व्यावहारिक अभ्यास कर सकते हैं। यह CSS Academy सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। CSS Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

मेसनरी क्या है

मेसनरी विन्यास तत्वों को ऐसे स्तंभों में रखता है जहाँ हर तत्व अगली उपलब्ध ऊर्ध्वाधर जगह भरता है, जैसा कि पिनटेरेस्ट पर दिखाई देता है। स्तंभों की चौड़ाई समान होती है, लेकिन उनकी ऊँचाई अलग-अलग हो सकती है। परिणामस्वरूप बिना खाली सफ़ेद जगह वाली सघन और दृश्य रूप से गतिशील ग्रिड बनती है।

CSS ग्रिड मेसनरी (प्रयोगात्मक)

फ़्लैग सक्षम होने पर क्रोम और फ़ायरफ़ॉक्स grid-template-rows: masonry का समर्थन करते हैं। तत्व स्तंभों में रखे जाते हैं, लेकिन पंक्तियों का आकार उनकी सामग्री की ऊँचाई के अनुसार होता है, जिससे अलग-अलग ऊँचाई वाले तत्व बिना अंतराल के व्यवस्थित हो सकते हैं। यह भविष्य का मूल समाधान है।

  <div class="grid">
    <div>1</div><div>2</div><div>3</div><div>4</div>
  </div>

CSS स्तंभों का तरीका

CSS स्तंभ मेसनरी जैसा विन्यास बनाते हैं: columns: 3; column-gap: 1rem। तत्व हर स्तंभ में अपने-आप ऊपर से नीचे की ओर बहते हैं। सीमा यह है कि तत्व पंक्ति-दर-पंक्ति नहीं, बल्कि स्तंभ-दर-स्तंभ क्रम में आते हैं—पहले स्तंभ का शीर्ष, फिर दूसरे स्तंभ का शीर्ष आदि—जिससे पढ़ने का क्रम और सुगम्यता प्रभावित होती है।

स्तंभ-विभाजन से बचना

तत्वों को स्तंभों के बीच टूटने से रोकने के लिए हर तत्व पर break-inside: avoid लगाएँ। इसके बिना कोई लंबा कार्ड दो स्तंभों में विभाजित होकर सामग्री को बीच से काट सकता है। कार्ड जैसी सामग्री के लिए CSS स्तंभों का उपयोग करते समय इसे हमेशा जोड़ें।

JavaScript मेसनरी लाइब्रेरी

Masonry.js (डेविड DeSandro द्वारा) स्तंभों की ऊँचाई की गणना करके और हर तत्व को सबसे छोटे स्तंभ में रखकर पूर्ण स्थिति वाले तत्वों का स्थान बदलता है। Isotope इसमें क्रमबद्ध करने और फ़िल्टर करने की सुविधा जोड़ता है। दोनों को स्थानों की गणना और उन्हें लागू करने के लिए JavaScript की आवश्यकता होती है।

CSS ग्रिड और JS का संकर तरीका

एक हल्का तरीका यह है: निश्चित स्तंभों और 1px वाली पंक्तियों का ग्रिड बनाएँ, फिर हर तत्व की सामग्री की ऊँचाई / पंक्ति की ऊँचाई के आधार पर उस पर grid-row-end: span N निर्धारित करने के लिए JS का उपयोग करें। तत्व ग्रिड पंक्ति का संरेखण बनाए रखते हुए अलग-अलग ऊँचाई प्राप्त करते हैं।

पुनर्गणना के लिए ResizeObserver

विंडो का आकार बदलने या छवियाँ लोड होने पर मेसनरी के स्थान पुराने हो जाते हैं। आकार में बदलाव का पता लगाने और पुनर्गणना शुरू करने के लिए ResizeObserver का उपयोग करें। तेज़ी से आकार बदलने की घटनाओं के दौरान अत्यधिक गणना से बचने के लिए पुनर्गणनाओं को डिबाउंस करें।

छवि लोड होना और विन्यास की स्थिरता

अज्ञात ऊँचाई वाली छवियों के लोड होने के बाद मेसनरी को फिर से गणना करनी पड़ती है। सभी छवियों पर चौड़ाई और ऊँचाई की स्पष्ट विशेषताएँ दें, ताकि ब्राउज़र लोड होने से पहले स्थान सुरक्षित रख सके। इससे स्थानों में बदलाव रुकते हैं और पुनर्गणना के चक्रों की संख्या घटती है।

मेसनरी के साथ अनंत स्क्रॉल

मेसनरी विन्यास में नए तत्व जोड़ने पर पूरे ग्रिड के बजाय केवल प्रभावित स्तंभों—अर्थात् नए तत्वों वाले स्तंभों—की पुनर्गणना करनी पड़ती है। Masonry.js जैसी लाइब्रेरी नए तत्वों के जुड़ने पर उनके गतिशील प्रभाव और क्रमिक विन्यास का समर्थन करती हैं, इसलिए हर नए समूह पर पूरे विन्यास को फिर से बनाने की आवश्यकता नहीं होती।

सुगम्यता संबंधी विचार

JavaScript से स्थान निर्धारित किए गए विन्यासों में मेसनरी का दृश्य क्रम DOM क्रम से अलग होता है। सुनिश्चित करें कि टैब क्रम दृश्य स्थिति के बजाय DOM क्रम, यानी तार्किक पढ़ने के क्रम, का अनुसरण करे। tabindex सावधानी से जोड़ें या कीबोर्ड नेविगेशन के लिए प्राकृतिक DOM प्रवाह पर निर्भर रहें।

केवल CSS वाली मेसनरी के लाभ-हानियाँ

CSS स्तंभ सरल होते हैं और JS की आवश्यकता नहीं होती, लेकिन पढ़ने का क्रम पंक्ति के बजाय स्तंभ के अनुसार होता है तथा फ़िल्टर या क्रमबद्ध करने की सुविधा नहीं होती। ग्रिड मेसनरी को अभी वास्तविक उपयोग के लिए पर्याप्त समर्थन नहीं मिला है। JS मेसनरी पूरी सुविधाएँ देती है, लेकिन स्थानों की गणना सामग्री लोड होने के बाद होने के कारण अतिरिक्त भार और प्रस्तुतिकरण में विलंब जोड़ती है।

ज्ञान-जाँच

कौन-सी CSS प्रॉपर्टी किसी कार्ड को दो CSS स्तंभों में विभाजित होने से रोकती है?

सारांश

मेसनरी विन्यास CSS स्तंभों से बनाया जा सकता है—जो सरल हैं लेकिन स्तंभ-क्रम का उपयोग करते हैं—प्रयोगात्मक grid-template-rows: masonry से बनाया जा सकता है, जो भविष्य का तरीका है, या Masonry.js जैसी JavaScript लाइब्रेरी से बनाया जा सकता है, जिसमें क्रमबद्ध करने और फ़िल्टर करने जैसी पूरी सुविधाएँ होती हैं। हर तरीके में सरलता, सुगम्यता और क्षमता के बीच अलग-अलग लाभ-हानियाँ होती हैं।

शुरुआत निःशुल्क

एआई शिक्षक के साथ CSS सीखें — निःशुल्क

अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।

पाठ्यक्रम
40
पाठ
159

अक्सर पूछे जाने वाले प्रश्न

क्या “मेसनरी लेआउट: CSS और JS तरीके” पाठ निःशुल्क है?

हाँ—“मेसनरी लेआउट: CSS और JS तरीके” का पूरा पाठ यहाँ वेब पर निःशुल्क पढ़ा जा सकता है। इंटरैक्टिव अभ्यास (अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर) करने और CSS Academy पाठ्यक्रम का बाकी हिस्सा अनलॉक करने के लिए CoddyKit PRO लें। CSS Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

“मेसनरी लेआउट: CSS और JS तरीके” में मैं क्या सीखूँगा?

CSS column-count और JavaScript फ़ॉलबैक रणनीतियों से Pinterest-शैली के मेसनरी ग्रिड बनाएँ। आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ CSS Academy का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।

क्या CSS Academy शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?

पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर CSS Academy शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 3वाँ पाठ है।

“मेसनरी लेआउट: CSS और JS तरीके” पाठ पूरा करने में कितना समय लगता है?

CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।

क्या मैं इस CSS Academy पाठ में कोड लिख और चला सकता हूँ?

हाँ। हर CSS Academy पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।

इस पाठ्यक्रम के सभी पाठ

  1. स्टिकी फ़ूटर और साइडबार लेआउट
  2. Grid से होली ग्रेल लेआउट
  3. मेसनरी लेआउट: CSS और JS तरीके
  4. आंतरिक डिज़ाइन: सामग्री-आधारित आकार निर्धारण
← CSS Academy पर वापस जाएँ