2011-05-24 21 views
40

साथ कंटेनर div का विस्तार करें मैं अपने आवेदन में निम्नलिखित संरचना है:सामग्री की चौड़ाई

<div id="container"> 
    <div id="child_container"> 
    <div class="child"></div> 
    <div class="child"></div> 
    ... 
    <div class="child"></div> 
    </div> 
</div> 

प्रत्येक बच्चे div एक ज्ञात निश्चित चौड़ाई है, लेकिन आवेदन child_container div में सम्मिलित करने के लिए उनमें से अधिक की अनुमति देता है।

मैं जो करने की कोशिश कर रहा हूं वह है कि जब कंटेनर div की आवश्यकता होती है तो बच्चे के कंटेनर की कुल चौड़ाई दी जाती है।

यह वर्तमान में क्या होता है:

+------ container -------+ 
+--- child_container ----+ 
| child1 child2 child3 | 
| child4     | 
+------------------------+ 

अगर मैं एक निश्चित मान में child_container div चौड़ाई सेट, मैं पिछले कंटेनर div, जो एक सा बदसूरत होने के बावजूद काम करता है क्षैतिज विस्तार करने के लिए प्राप्त कर सकते हैं:

+------ container -------+ 
+------ child_container -+----+ 
| child1 child2 child3 child4 | 
+------------------------+----+ 

हालांकि, जब भी कोई नया बच्चा जोड़ा जाता है तो इसे पुन: गणना करने की आवश्यकता होती है।

वहाँ ऐसी है कि अंतिम परिणाम है

+--------- container ---------+ 
+------ child_container ------+ 
| child1 child2 child3 child4 | 
+-----------------------------+ 

धन्यवाद एक तरह से बच्चे को कंटेनर के लिए तय की चौड़ाई का उपयोग किए बिना ऐसा करने के लिए, एक रास्ता है।

+0

कुछ कोड प्रदान करें। एक पहेली में भी बेहतर है। – Andre

+1

यहां यह है: http://jsfiddle.net/8XGqs/ – Andre

+0

http://jsfiddle.net/8XGqs/1/ बेहतर से ऊपर एसीआई कला के बराबर दिखाता है, मुझे लगता है। बस चौड़ाई जोड़ा: # कंटेनर के लिए 100%। – Andre

उत्तर

26

इस तरह काम करना चाहिए:

#container, #child_container, .child { 
    position: relative; 
    float: left; 
} 
+1

क्यों 'स्थिति: रिश्तेदार'? – thirtydot

+3

@thirtydot क्योंकि कुछ ब्राउज़र HTML कैसे प्रस्तुत करते हैं। यह बताए बिना कुछ ब्राउज़र कंटेनर के आकार को बढ़ाने के लिए 'बच्चे' तत्वों के आकार का उपयोग नहीं करेंगे – wajiw

+1

यह अच्छा है ... हालांकि आपको 'स्थिति: रिश्तेदार' की आवश्यकता नहीं हो सकती है; –

2

यदि आप युक्त div सहित सभी चीजें छोड़ते हैं, तो यह काम करेगा।

28

भी आसान:

<style> 
    #container{ display: inline-block; } 
</style> 
+0

देने से प्यार है, मैं चाहता हूं कि आईई 7 ने उस वक्त कथन का उपयोग करने पर हर बार फिट न फेंक दिया ... – dkroy

+3

इस [उत्तर] को प्रतिस्थापित करने में आसान है (http://stackoverflow.com/questions/ 6544852/यानी 7-समस्या-साथ-प्रदर्शन-इनलाइन-ब्लॉक) –

-7

सिर्फ 120% माता पिता की चौड़ाई सेट और किया =)

+2

इससे कुछ और तत्वों की अनुमति मिल जाएगी, और अधिक सामान आने के बारे में क्या? –

11

पैरेंट कंटेनर जीता ' जब कोई बच्चा तत्व जोड़ा जाता है तो टी बढ़ता नहीं है।

+------ container -------+ 
+--- child_container ----+ 
| child1 child2 child3 | 
| child4     | 
+------------------------+ 

लेकिन हम सीएसएस 3 फ्लेक्स बॉक्स का उपयोग करके अगली पंक्ति पर नए के प्रतिपादन से बच सकते हैं। नमूना रखा गया है नीचे उल्लेख path

.products{ 
      display: -webkit-flex; 
      -webkit-flex-flow: row; 
      /*-webkit-justify-content: center;*/ 
     } 
     .products > div{ 
      padding: 0 4em; 
     } 

परिणाम इस तरह दिखेगा:

+--- child_container ----+| 
| child1 child2 child3 ch|ild4 child5 
|       | 
+------------------------+ 
संबंधित मुद्दे