2013-04-15 7 views
11

मैं एक सूची तत्व के अंदर एक मूल div बनाने की कोशिश कर रहा हूं जिसमें बाएं और दाएं के लिए दो बच्चे div शामिल हैं। बाएं में एक छवि होगी और दाईं ओर दो अतिरिक्त divs होंगे जिनमें कुछ टेक्स्ट और टाइमस्टैम्प होगा।मेरे divs ओवरलैपिंग क्यों हैं?

मुझे ओवरलैपिंग के बिना बाएं और दाएं divs प्रदर्शित करने के लिए नहीं मिल सकता है।

मेरे एचटीएमएल इस तरह लग रहा है:

<ul class="activity-comments"> 
<li> 
<div style="border: solid 1px #ff0000;"> 
    <div style="float:left;border: solid 1px #0000ff;"> 
     <img src="http://localhost/new/img/sampleimg.png" class="thumb-small"> 
    </div> 
    <div> 
    <small>Some sample text here 1</small> 
    </div> 
    <div> 
    <small>Posted 1 day ago</small> 
    </div> 
</div> 
</li> 
<li> 
<div style="border: solid 1px #ff0000;"> 
    <div style="float:left;border: solid 1px #0000ff;"> 
     <img src="http://localhost/new/img/sampleimg.png" class="thumb-small"> 
    </div> 
    <div> 
    <small>Some sample text here 2</small> 
    </div> 
    <div> 
    <small>Posted 2 days ago</small> 
    </div> 
</div> 
</li> 
</ul> 

इस jsfiddle

पर एक नज़र मैं क्या याद आ रही है ले लो?

उत्तर

11

वे अतिव्यापी हैं क्योंकि आप एक div तैर रहे हैं, लेकिन फ्लोट को साफ़ नहीं कर रहे हैं।

फ्लोट को साफ़ करने के लिए clearfix विधि का उपयोग करें। एक वर्ग container अपने कंटेनर divs में जोड़े और प्रयोग इस सीएसएस:

http://jsfiddle.net/57PQm/7/

.container { 
    border: solid 1px #ff0000; 
    zoom: 1; /* IE6&7 */ 
} 

.container:before, 
.container:after { 
    content: ""; 
    display: table; 
} 

.container:after { 
    clear: both; 
} 

आप यह भी देखेंगे कि मैं अपने इनलाइन सीएसएस हटा दिया है। यह आपके कोड को बनाए रखने में आसान बनाता है।

+0

यह दुनिया में सबसे बुरी चीज नहीं है। यह एक बहुत ही आम प्रथा है, लेकिन मैंने कहीं अतिरिक्त पढ़ा बिना इसे कैसे किया है, लेकिन मुझे यह याद नहीं है। मैं इसे अभी देख लूंगा। – Travesty3

+1

यह उन लोगों द्वारा एक आम प्रथा है जो अभी भी 2013 के बजाय 2000 की तरह कोडिंग कर रहे हैं। Http://codepen.io/cimmanon/pen/qDjdr – cimmanon

+0

'स्पष्ट: बाएं | दाएं' के साथ एक छद्म जोड़ जोड़ें या 'ओवरफ़्लो' या बस उपयोग करें छवि समायोजित करें। – Christoph

0

मुझे आश्चर्य है कि अगर यह है कि आप क्या देख रहे हैं: jsfiddle

मैं img{display:block;} में जोड़ा के रूप में छवियों को कुछ छिपा गद्दी कि elemets नीचे shoves साथ आते हैं।

+2

तकनीकी रूप से यह एक पैडिंग नहीं है बल्कि प्रतिस्थापित तत्व 'आईएमजी' की आधार रेखा पर संरेखण है। तो बस 'वर्टिकल-एलाइन' सेट करना [काम भी करेगा] (http://jsfiddle.net/57PQm/6/)। – Christoph

0

आपका थंबनेल तस्वीर को 41px की विशिष्ट ऊंचाई पर सेट कर रहा है। या तो तस्वीर का आकार बदलें, या div आकार बदलें या बाहरी div के अतिप्रवाह सेट करें।

+0

आप छवि के लिए अतिरिक्त पैडिंग कहां देखते हैं? – Paul

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