2011-03-20 13 views
6

मैं अपने फ़्लोटिंग बच्चों को समायोजित करने के लिए स्वचालित रूप से एक div कैसे बना सकता हूं?मैं अपने फ़्लोटिंग बच्चों को समायोजित करने के लिए स्वचालित रूप से एक div कैसे बना सकता हूं?

<div class="Parent"> <!-- 3 Children, should be 450px wide--> 
    <div class="Child"></div> 
    <div class="Child"></div> 
    <div class="Child"></div> 
</div> 
<div class="Parent"> <!-- 2 children, should be 300px wide--> 
    <div class="Child"></div> 
    <div class="Child"></div> 
</div> 

चाइल्ड डिव सभी निश्चित फ्लोट के साथ "फ्लोट: बाएं" हैं। मैं माता-पिता div को अपने फ़्लोटिंग बच्चों की चौड़ाई के बराबर कैसे बना सकता हूं? प्रत्येक माता-पिता में बच्चों की संख्या अलग-अलग होती है और अज्ञात होती है लेकिन बच्चों को एक पंक्ति में लाइन अप करना होगा, बिना किसी नई लाइन पर लपेटे।

उदाहरण: यदि सभी तीन बच्चे 150 पीएक्स हैं, तो माता-पिता 450 पीएक्स बनना चाहिए ताकि कोई भी बच्चे लपेट सके। यदि दो 150 पीएक्स बच्चे हैं, तो माता-पिता 300 पीएक्स बनना चाहिए।

अद्यतन:

"फिडल" बहुत अच्छा है। यहां समस्या का एक डेमो है: http://jsfiddle.net/AG3c9/6/

जब आप जानवरों पर होवर करते हैं, तो आप देख सकते हैं कि पक्षी, सरीसृप और मछली एक-दूसरे के ऊपर खड़ी हैं। उन्हें तरफ से दिखाना चाहिए। http://jsfiddle.net/AG3c9/8/

मैं इसे माता-पिता के लिए मजबूर कर एक निश्चित चौड़ाई होने के लिए द्वारा मिल गया:

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

+0

तो अभी क्या हो रहा है? क्या वे एक नई लाइन में लपेटते हैं? क्या आपने माता-पिता पर 'चौड़ाई: ऑटो' कोशिश की? – moe

+0

कृपया अपडेट देखें। – Nick

+0

आप किस ब्राउजर में इसका परीक्षण कर रहे हैं? मैं क्रोम का उपयोग कर रहा हूं और आपके द्वारा चिपकाए गए दोनों लिंक समान काम करते हैं। पक्षी, सरीसृप, और मछली एक दूसरे के बगल में हैं और दूसरे के शीर्ष पर नहीं हैं। फ़ायरफ़ॉक्स 3.6 का उपयोग कर – moe

उत्तर

6

फ्लोट .Parentdiv रों:

Live Demo

मेरे टेस्ट सीएसएस:

.Parent { 
    float: left; 
    background: #ccc; 

    margin: 0 0 16px 0; 
    clear: both 
} 
.Child { 
    float: left; 
    width: 150px; 
    height: 50px; 
} 

यही होता है जब आप नहीं float: left माता पिता div करना है:

http://jsfiddle.net/thirtydot/AG3c9/1/

+0

मैंने आपके सुझाव की कोशिश की, लेकिन यह अभी भी बच्चों को ढेर करने का आग्रह करता है। (मेरी समस्या आपके दूसरे "खराब" उदाहरण की तरह नहीं दिखती है)। यह माता-पिता को एक बच्चे के div की चौड़ाई को विभाजित कर रहा है, और अगले तीनों के नीचे एक ही तीन बच्चों को लंबवत रखता है। मुझे लगता है कि मैं क्या चाहता हूं जिस तरह से काम करना चाहिए, लेकिन मेरी समस्या पूरी तरह से कुछ और है? मैं उपरोक्त अधिक कोड जोड़ दूंगा। – Nick

+2

आप सही हैं - आपने जो सवाल पूछा और आपकी वास्तविक समस्या पूरी तरह से अलग जानवर थे। मैंने 'डिस्प्ले: इनलाइन-ब्लॉक' का उपयोग कर अपनी वास्तविक समस्या तय की है। मैंने आईई 7, आईई 8, और फ़ायरफ़ॉक्स, क्रोम, सफारी, ओपेरा के हाल के संस्करणों में अपने समाधान का परीक्षण किया। यहां यह है: http://jsfiddle.net/AG3c9/16/ - दो नए हिस्सों को देखने के लिए '/ * NEW * /' के लिए CTRL + F। मैंने कुछ स्थानों से 'फ्लोट: बाएं' भी हटा दिया। – thirtydot

+0

ऊपर और परे जाने के लिए धन्यवाद! मुझे लगता है कि यह आईई 6 में काम नहीं करेगा, लेकिन मुझे यकीन नहीं है कि मुझे परवाह है। किसी बिंदु पर लोगों को बस अपने ब्राउज़र को अपडेट करने की आवश्यकता है! एक बार फिर धन्यवाद! – Nick