2012-07-10 23 views
10

मेरे पास दो कॉलम हैं और उपस्थिति के क्रम में अलग-अलग ऊंचाइयों के divs को ढेर करना चाहते हैं।अलग-अलग ऊंचाई divs दो कॉलम में तैरते हैं

divs गतिशील रूप से बनाए गए हैं।

यदि मैं केवल उन्हें 50% चौड़ाई पर तैरता हूं, तो जल्द ही मैं स्थिति में आती हूं कि div # 4 आने वाले कुछ divs से 5 गुना अधिक है। फिर अगला div पिछले div के नीचे शीर्ष गठबंधन है।

मैं इस तरह सटीक मिलान होना आवश्यक कंटेनर में बच्चे divs फिट करने के लिए की जरूरत है:

----- ------- 
    1  2 
----- 
    3 ------- 
----- 4 
    5 
----- 
    6 
----- 
    7 ------- 
----- 8 
    9 

----- 
10 ------- 
     11 
     ------- 
     ------- 
----- 

यहाँ कोड का टुकड़ा है कि मैं क्या किया है:

<style> 
    .box {background:#20abff; color:#fff; width:50%; margin: 5px;} 
    .left {float:left;} 
    .right {float:right;} 
    .container {width:205px;} 
</style> 
    <body> 
     <div class="container"> 
      <div class="box left" style="height:60px;">1</div> 
      <div class="box left" style="height:80px;">2</div> 
      <div class="box left" style="height:30px;">3</div> 
      <div class="box left" style="height:70px;">4</div> 
      <div class="box left" style="height:60px;">5</div> 
      <div class="box left" style="height:20px;">6</div> 
      <div class="box left" style="height:40px;">7</div> 
      <div class="box left" style="height:90px;">8</div> 
      <div class="box left" style="height:30px;">9</div> 
     </div> 
    </body> 

और यह इस

के समान दिखता है

http://dl.dropbox.com/u/142343/divstack.html

मदद

+0

क्या आप अपना वर्तमान एचटीएमएल और सीएसएस पोस्ट कर सकते हैं? – Erica

+0

[आपने क्या प्रयास किया है?] (Http://mattgemmell.com/2008/12/08/what-have-you-tried/) – avall

+0

मैं देखता हूं कि आप क्या करने की कोशिश कर रहे हैं .. हालांकि समस्या क्या है? – Oofpez

उत्तर

12

आपको जावास्क्रिप्ट के साथ ऐसा करना होगा। यदि आप jQuery का उपयोग कर रहे हैं, तो Masonry नामक एक उत्कृष्ट प्लगइन है। non jQuery version भी है।

के शब्दों में README on GitHub:

चिनाई एक गतिशील ग्रिड लेआउट स्क्रिप्ट है। सीएसएस फ्लोट के फ्लिप-साइड के रूप में इसके बारे में सोचें। जबकि फ़्लोटिंग तत्व क्षैतिज रूप से व्यवस्थित करता है तो लंबवत, चिनाई तत्वों को लंबवत रूप से व्यवस्थित करता है, ग्रिड में अगले खुले स्थान में प्रत्येक तत्व को स्थितिबद्ध करता है। परिणाम अलग-अलग ऊंचाई के तत्वों के बीच लंबवत अंतराल को कम करता है, बस एक दीवार में एक मेसन फिटिंग पत्थरों की तरह।

single column layout शायद आप जो खोज रहे हैं वह शायद है।


आप धूल में पुराने ब्राउज़र छोड़ने कोई आपत्ति नहीं है, वहाँ CSS3 column properties हैं। here, on Quirksmode का उदाहरण है, और MDN पर कुछ दस्तावेज़ हैं।

+0

+1 चिनाई प्लगइन इस लेआउट के लिए जाने का तरीका है। –

+0

लेकिन चिनाई आईई में काम नहीं करता है ... कोई समाधान –

+0

@ राम क्या आपने इसे आईई में भी आजमाया था? [डेमो साइट] (http://masonry.desandro.com/) आईई 10, 8 और 7 में पूरी तरह से काम करता है। – Bojangles

2

कंटेनर के रूप में 2 div का उपयोग करें, इस कंटेनर div में दोनों कॉलम डालें, इसलिए इस div को बाएं और दाएं फ्लोट दें ... यह काम कर सकता है ... इसके अलावा ग्रिड लेआउट काम करेगा।

संबंधित मुद्दे