मैं नेस्टेड फ्लेक्सबॉक्स लेआउट पर काम कर रहा हूं जो निम्नानुसार काम करना चाहिए:
सबसे बाहरी स्तर ( ul#main) एक क्षैतिज सूची है जिसे अधिक वस्तुओं के साथ जोड़े जाने पर दाईं ओर विस्तृत होना चाहिए। यदि यह बहुत बड़ा हो जाता है, तो एक क्षैतिज स्क्रॉल पट्टी होनी चाहिए।
#main {
display: flex;
flex-direction: row;
flex-wrap: nowrap;
overflow-x: auto;
/* ...and more... */
}
इस सूची के प्रत्येक आइटम में ul#main > liहेडर ( ul#main > li > h2) और एक आंतरिक सूची ( ul#main > li > ul.tasks) है। यह आंतरिक सूची वर्टिकल है और जरूरत पड़ने पर कॉलम में लिपट जाना चाहिए। अधिक स्तंभों में लपेटते समय, अधिक वस्तुओं के लिए जगह बनाने के लिए इसकी चौड़ाई बढ़नी चाहिए। यह चौड़ाई वृद्धि बाहरी सूची के युक्त आइटम पर भी लागू होनी चाहिए।
.tasks {
flex-direction: column;
flex-wrap: wrap;
/* ...and more... */
}
मेरी समस्या यह है कि जब खिड़की की ऊंचाई बहुत छोटी हो जाती है, तो आंतरिक सूचियाँ नहीं लपेटती हैं। मैंने सभी फ्लेक्स गुणों के साथ बहुत छेड़छाड़ की कोशिश की है, सीएसएस-ट्रिक्स में दिशानिर्देशों का सावधानीपूर्वक पालन करने की कोशिश कर रहा हूं , लेकिन भाग्य नहीं।
यह JSFiddle दिखाता है कि मेरे पास अब तक क्या है।
अपेक्षित परिणाम (मुझे क्या चाहिए) :

वास्तविक परिणाम (मुझे क्या मिलेगा) :

पुराना परिणाम (2015 में मुझे जो मिला) :

अपडेट करें
कुछ जांच के बाद, यह एक बड़े मुद्दे की तरह लग रहा है। सभी प्रमुख ब्राउज़र एक ही तरह से व्यवहार करते हैं , और इसका मेरे फ्लेक्सबॉक्स डिज़ाइन के साथ कोई संबंध नहीं है। यहां तक कि सरल फ्लेक्सबॉक्स कॉलम लेआउट आइटम लपेटने पर सूची की चौड़ाई बढ़ाने से इनकार करते हैं।
यह अन्य JSField स्पष्ट रूप से समस्या को दर्शाता है। क्रोम, फ़ायरफ़ॉक्स और IE11 के वर्तमान संस्करणों में, सभी आइटम सही ढंग से लपेटते हैं; सूची की ऊंचाई rowमोड में बढ़ती है, लेकिन इसकी चौड़ाई columnमोड में नहीं बढ़ती है। साथ ही, किसी columnमोड की ऊँचाई को बदलते समय तत्वों का कोई तात्कालिक प्रतिक्षेप नहीं होता है , लेकिन rowमोड में है।
हालांकि, आधिकारिक चश्मा (उदाहरण 5 पर विशेष रूप से देखें) से यह संकेत मिलता है कि मैं जो करना चाहता हूं वह संभव होना चाहिए।
क्या कोई इस समस्या के समाधान के साथ आ सकता है?
अद्यतन २
घटनाओं का आकार बदलने के दौरान विभिन्न तत्वों की ऊंचाई और चौड़ाई को अद्यतन करने के लिए जावास्क्रिप्ट का उपयोग करने के बाद बहुत सारे प्रयोग करने के बाद, मैं इस निष्कर्ष पर पहुंचा हूं कि यह बहुत जटिल है और इसे हल करने के लिए बहुत अधिक परेशानी है। साथ ही, जावास्क्रिप्ट को जोड़ने से फ्लेक्सबॉक्स मॉडल निश्चित रूप से टूट जाता है, जिसे यथासंभव साफ रखा जाना चाहिए।
अभी के लिए, मैं overflow-y: autoइसके बजाय वापस गिर रहा हूं flex-wrap: wrapताकि जरूरत पड़ने पर आंतरिक कंटेनर लंबवत स्क्रॉल करें। यह सुंदर नहीं है, लेकिन यह एक ऐसा तरीका है जो कम से कम उपयोग करने की क्षमता को नहीं तोड़ता है।
column wrapलपेटते समय इसकी चौड़ाई का विस्तार नहीं करने के लिए सेट होता है। अधिक जानकारी के लिए code.google.com/p/chromium/issues/detail?id=247963 देखें ।