मैं क्रोम में सीएसएस 3 के फ्लेक्सबॉक्स के साथ खेल रहा हूं (इसके लिए क्रॉस-ब्राउजर के बारे में चिंता करने की आवश्यकता नहीं है)। मुझे अपनी सामग्री को जिस तरह से पसंद करना है, उसे समझने में कठिनाई हो रही है। यह बजाय प्रत्येक .group
को छोड़कर महान काम करने के लिए उसकी ऊंचाई का विस्तार होगा एकाधिक स्तंभों बनाने लगता है http://jsfiddle.net/Yht4V/2/: यहाँ मेरा लक्ष्य का चित्र है:लंबवत विस्तार किए बिना बहु-कॉलम लेआउट बनाने के लिए css3 flexbox का उपयोग कैसे करें?
यहाँ मेरी प्रयास का jsFiddle है।
मैं यहां पर flexbox का उपयोग कर रहा हूं। body
लंबवत रूप से बताता है, #content
div पृष्ठ की शेष ऊंचाई लेते हुए। प्रत्येक .group
क्षैतिज रूप से रखा गया है। अंत में, प्रत्येक .item
को .group
रैपिंग के साथ लंबवत रूप से रखा गया है।
दुर्भाग्यवश, प्रत्येक .group
#content
ऊंचाई का विस्तार करके एक कॉलम के रूप में समाप्त होता है, जो लंबवत स्क्रॉलबार (अवांछित) का कारण बनता है। यदि मैं प्रत्येक .group
की एक निश्चित पिक्सेल आकार की ऊंचाई निर्धारित करता हूं, तो आइटम कई कॉलम में विभाजित होते हैं, लेकिन यह फ्लेक्सबॉक्स की तरलता को हरा देता है। यह निश्चित ऊंचाई के साथ दिखता है: http://jsfiddle.net/Yht4V/3/
तो, मैं अपने #content
div को लंबवत रूप से विस्तारित करने के लिए कैसे प्राप्त कर सकता हूं क्योंकि निश्चित लंबाई निर्धारित किए बिना फ्लेक्सबॉक्स के साथ सब कुछ प्रबंधित किया जाता है? मैं फ्लेक्सबॉक्स को अपने माता-पिता की ऊंचाई बढ़ाने और स्क्रॉलबार के कारण अधिक कॉलम ट्रिगर करने की उम्मीद कर रहा था।
मेरे लिए बहुत अच्छी तरह से काम? आइटम 200px चौड़ाई क्यों तय किया है? क्या किसी भी समूह को कॉलम या सिर्फ पहले होना चाहिए? क्या कोई ओवरफ्लो होना चाहिए? (यदि मैं प्रत्येक समूह में 100 आइटम जोड़ता हूं तो) फ्लेक्सबॉक्स आपके इच्छित चीज़ों जैसे स्टैकेबल कॉलम नहीं बनाता है, यह फ्लेक्सबॉक्स के लिए लेआउट लक्ष्य नहीं है।अपनी तस्वीर में जो चाहते हैं उसे प्राप्त करना आसान है, मुझे केवल स्केलिंग आवश्यकताओं की सभी जानकारी नहीं है, जो केवल सीएसएस के साथ बहुत कठिन या असंभव हो सकती है। – skyline3000
@ skyline3000 मैं सादे एचटीएमएल/सीएसएस के साथ विंडोज 8 "मेट्रो" स्टाइल डिज़ाइन के साथ प्रयोग कर रहा हूं, इसलिए आदर्श रूप से प्रत्येक समूह आवश्यकतानुसार कॉलम क्षैतिज रूप से जोड़ देगा और एक क्षैतिज स्क्रॉलबार 'iff' आवश्यक होगा (इसलिए पहले तत्वों को लंबवत जोड़ें, फिर लपेटें क्षैतिज कॉलम द्वारा)। मैं जेएस के साथ इसे पूरा करने के तरीकों को चित्रित कर सकता हूं, लेकिन उम्मीद कर रहा था कि यह वेबकिट में केवल HTML5/CSS3 के साथ किया जा सकता है। –
@ skyline3000 सीधे आपको प्रश्नों का उत्तर देने के लिए: हाँ, स्क्रीन की ऊंचाई/चौड़ाई के बावजूद यह द्रव होना चाहिए (मेरे पास स्क्रीन आकार पर नियंत्रण नहीं है)। प्रत्येक आइटम डिजाइन द्वारा तय आकार है, यह मेरे अंतिम कार्यान्वयन के लिए सच होगा। शायद उन सटीक आयामों को नहीं, लेकिन फिर भी तय किया गया है। अंत में, जैसा कि मैंने ऊपर उल्लेख किया है, तत्वों को लंबवत रूप से भरना चाहिए और क्षैतिज रूप से अतिप्रवाह होना चाहिए। –