div

2011-11-27 15 views
7

युक्त 2 क्षैतिज divs के बीच की जगह को खत्म नहीं कर सकता है, आसान होना चाहिए, है ना? बस बाहरी को div के पैडिंग को शून्य पर सेट करें, और बाहरी div के अंदर दोनों पक्ष-दर-पक्ष divs को मार्जिन रखने के लिए सेट करें: 0 लेकिन 2 क्षैतिज divs के बीच की जगह पर इसका कोई प्रभाव नहीं पड़ता है। मुझे जो चाहिए वह हरे-रूपरेखा वाले दाहिने तरफ div को छूने के लिए लाल-रूपरेखा बाएं div है।div

पैडिंग और मार्जिन का उपयोग करने के मेरे प्रयास के बावजूद, 2 divs के बीच की जगह दूर नहीं जाएगी।

मैं इतने पर कई सवालों के जवाब पर ध्यान दिया है, लेकिन अभी तक कोई भी के टूटे हुए यह इस सरल उदाहरण के लिए नीचे - मेरी बेला इस मुद्दे पता चलता है,

http://jsfiddle.net/Shomer/tLZrm/7/

और यहाँ बहुत ही सरल कोड है पर:

<div style="border: 4px solid blue; white-space:nowrap; margin:0; padding:0; width:80%"> 

    <div style="display:inline-block; width:45%; overflow:hidden; margin:0; border: 1px solid red"> Flimmy-flammy 
    </div> 

    <div style="display:inline-block; width:50%; overflow:hidden; margin:0px; border: 1px solid green"> Hambone-Sammy 
    </div> 

</div> 

उत्तर

3

इस प्रयास करें:

<div style="border: 4px solid blue; margin:0; padding:0; width:80%; height: 50px;"> 

    <div style="float:left; display:inline-block; width:45%; overflow:hidden; border: 1px solid red;"> Flimmy-flammy 
    </div> 

    <div style="float: left; display:inline-block; width:50%; overflow:hidden; border: 1px solid green;"> Hambone-Sammy 
    </div> 

</div> 
+0

मैंने अपने कोड में यह जोड़ा - यह काम करता है। मैंने 'डिस्प्ले: इनलाइन-ब्लॉक' के साथ 'फ्लोट' का उपयोग नहीं किया है, आपको नहीं पता था कि आप ऐसा कर सकते हैं, मैंने सोचा था कि आपने या तो एक या दूसरे का इस्तेमाल किया - सबक सीखा। मुझे अभी भी यकीन नहीं है कि क्यों पैडिंग: 0 और मार्जिन: 0 मैंने कोशिश की शून्य प्रभाव है। मैंने एक स्पष्ट जोड़ा: नीचे दोनों div और मेरे बाकी कोड ए-ओके है - धन्यवाद। – wantTheBest

+0

यदि आप मेरी टिप्पणी पढ़ते हैं - जब मैंने आपके जेएसफ़िल्ड को देखा तो जेएसफ़िल्ड स्क्रीन पर एक पूरी तरह से अलग खिड़की में घुंघराले ब्रेसिज़ में बस एक फ्लोट था।हालांकि निक ने कोड * को संदर्भ में रखा * - मुझे यह अनुमान लगाने की ज़रूरत नहीं थी कि मेरा कोड अलग-अलग क्यों व्यवहार करता है। फिर मैंने तुम्हें ऊपर तीर किया। अगर यह समझाना है कि jsfiddle की एक अलग खिड़की में घुंघराले ब्रेसिज़ में आपकी फ्लोट कैसे हल हुई, तो मेरी समस्या हल हो गई - मुझे अभी भी कनेक्शन नहीं दिख रहा है - मुझे आपके उत्तर से जो मिला वह 'फ्लोट का उपयोग' था लेकिन कोई संदर्भ नहीं था मैं समझ सकता था, माफ करना, मैं सीएसएस के लिए नया हूं (केवल 3 दिन) और jsfiddle के लिए नया (केवल 1 दिन)। – wantTheBest

+0

सरल लेकिन – Julisch

14

अंतरिक्ष अपने divs के बीच गाया खाली स्थान के, (डॉट्स के रूप में प्रतिनिधित्व) ध्वस्त हो गई, में है:

</div>. 
................. 
....<div> 

इसके बजाय, इस तरह कोडिंग का प्रयास करें:

</div><div> 

और अंतर गायब हो जाएगा।

+4

मदद करता है यह इस समस्या के लिए वास्तविक व्याख्या है। धन्यवाद। – Alconis

4

इनलाइन ब्लॉक के बीच स्रोत में व्हाइटस्पेस लेआउट में एक अंतर की ओर जाता है। अंतरिक्ष को हटाकर (चाहे वह एक ही स्थान हो या कुछ लाइन ब्रेक कोई फर्क नहीं पड़ता) तत्व इरादे के रूप में स्पर्श करेंगे।

कोड की स्वरूपण को थोड़ी सी कीमत पर रखा जा सकता है, या तो व्हाइटस्पेस पर टिप्पणी करके या व्हाइट्स स्पेस टैग के भीतर होकर।

का उपयोग करते हुए टिप्पणियां:

<div> 
    <div>Content</div><!-- 
    --><div>Content</div> 
</div> 

टैग के अंदर रखने LINEBREAK:

<div> 
    <div>Content</div 
    ><div>Content</div> 
</div> 
1

तरह @Juan Lanus ने कहा कि उनकी इस सवाल का जवाब में, यह खाली स्थान के आपकी समस्या का कारण है।

एक अतिरिक्त समाधान font-size: 0px को युक्त div पर सेट करना है।

लेकिन आपको बच्चों के div पर font-size: initial (या गैर-शून्य मान) भी सेट करने की आवश्यकता होगी ताकि आप अभी भी अपना टेक्स्ट देख सकें।