2015-05-19 5 views
10

अद्यतन:बड़ा नकारात्मक मार्जिन-दाहिने पूर्ण तत्व को लपेटता है क्यों नहीं?

स्थिति मूल्य चौड़ाई बदल जाएगा।

JSFiddle: http://jsfiddle.net/caicai/mbtb5m7p/2/


क्यों div .a2 अपने माता पिता की चौड़ाई के बराबर की चौड़ाई, div .a1 में पाठ रैप नहीं होगा, जबकि करता है?

JSFiddle: http://jsfiddle.net/caicai/mbtb5m7p/

.r { 
 
    position: relative; 
 
    width: 100px; 
 
    height: 22px; 
 
    background: blue; 
 
} 
 
.a1 { 
 
    position: absolute; 
 
    top: 30px; 
 
    margin-right: -9999px; 
 
    background: green; 
 
} 
 
.a2 { 
 
    position: absolute; 
 
    top: 60px; 
 
    background: orange; 
 
}
<div class="r"> 
 
    <div class="a1"> 
 
     Why does this line no wrap. 
 
    </div> 
 
    <div class="a2"> 
 
     Why does this line wrap. 
 
    </div> 
 
</div>

+0

आप एक jsfiddle दुनिया को दिखाने के लिए – Andrew

+1

बड़ा नकारात्मक मार्जिन निकालें मार्जिन-सही संपत्ति –

+0

बस डेवलपर उपकरण में मार्जिन मूल्यों के साथ खेल रहा है, मिल गया है, और अधिक यह की चौड़ाई बढ़ जाती है रैप प्रभाव खोने, 'ए 1' div। –

उत्तर

3

div.r 100px की चौड़ाई है और रिश्तेदार रखा गया है।

बच्चे .a1 और .a2 पूर्ण हैं। उनके (अपेक्षाकृत रखा गया) माता-पिता से संबंधित।

नकारात्मक मार्जिन के बिना, बच्चे अपने माता-पिता के आकार के बराबर अधिकतम चौड़ाई लेंगे।

लेकिन, नकारात्मक मार्जिन जोड़कर, आप बच्चों को अपने माता-पिता सीमाओं पर "फ़्लोट" करने की अनुमति देते हैं।

+0

धन्यवाद! क्या आप कृपया बता सकते हैं कि '.a1' कितनी पीएक्स" फ्लोट ओवर "होगी। –

+0

सैद्धांतिक रूप से 99 99 पीएक्स द्वारा, लेकिन जैसा कि आप देख सकते हैं, डिफ़ॉल्ट व्यवहार div को अपनी सामग्री के रूप में व्यापक नहीं बनाना है। जब आप मार्जिन-दाएं उदाहरण के लिए -25 पीएक्स को कम करते हैं, तो आप प्रभाव को बेहतर तरीके से देखेंगे: http://jsfiddle.net/mbtb5m7p/1/ – LinkinTED

2

ऐसा नहीं है कि .a1 की सामग्री अब लपेट नहीं रही है, यह है कि .a1 की सामग्री को लपेटने की कोई आवश्यकता नहीं है क्योंकि उपलब्ध आंतरिक अंतरिक्ष को आपके नकारात्मक मार्जिन द्वारा स्ट्रिंग के लिए काफी व्यापक बना दिया गया है।

तो आपकी div.a1 अनिवार्य रूप से .r + की चौड़ाई होगी जो नकारात्मक मार्जिन का मूल्य है, जो सही चरम को खींच रहा है और आपके div के आकार को बढ़ा रहा है।

यह सुंदर कितना बॉक्स मॉडल काम करता है, यह पता here या here

+1

# क्रूर - गणना की चौड़ाई मान '.r की चौड़ाई नहीं है 'नकारात्मक मार्जिन का मूल्य। डिफ़ॉल्ट बॉक्स-मॉडल के आधार पर मार्जिन इस मामले में सामग्री चौड़ाई को क्यों प्रभावित करेगा? –

+1

आप सही हैं, एक शाब्दिक अतिरिक्त नहीं, यह सिर्फ इसे समझाने का सबसे आसान तरीका महसूस करता है (वैसे ही जिस तरह से मैंने w3c spec से जुड़ा हुआ है)। तो '.a1' की चौड़ाई 100px होगी, हालांकि बॉक्स के दाएं किनारे को 9999 पीएक्स को नकारात्मक मार्जिन से दाएं स्थानांतरित कर दिया गया है, जिससे इसकी आंतरिक चौड़ाई अब 100 99 पीएक्स बन गई है ... इसलिए स्ट्रिंग को लपेटने की आवश्यकता नहीं है ... (हे हा हा मेरे साधारण गणित के लिए उस साधारण योग पर संपादन करता है, डी 'यूएच) – BenLeah

0

मार्जिन जाँच कुछ है कि इसके चालू होने के a1 वर्गों और a2 के लिए माता-पिता तत्व (वर्ग/आईडी) यहाँ वर्ग आर निर्भर करता है।

1) अब आपके पास चौड़ाई है: माता-पिता वर्ग (कक्षा) के लिए 100 पीएक्स, इसलिए सभी बच्चे वर्ग (कक्षा एए 2) समान चौड़ाई प्राप्त करता है।

2) कक्षा ए 2 के लिए कोई समस्या नहीं है, यह कक्षा पूरी तरह से सामान्य है क्योंकि मूल वर्ग (.r) की तुलना में कोई अद्वितीय (अलग) संपत्ति नहीं है, इसलिए ठीक से व्यवहार करता है।

3) अब वर्ग। ए 1 के मामले में, जो मार्जिन-दाएं: नकारात्मक वैल्यू मिलने तक ठीक से व्यवहार करता है;

तो पहले मार्जिन को समझना, मार्जिन कक्षा/तत्व ब्लॉक और उसके मूल वर्ग/तत्व ब्लॉक के बीच की जगह है। उदाहरण मार्जिन-बाएं: 5 पीएक्स; ताकि शेष तीन पक्षों (शीर्ष, नीचे, दाएं) के लिए क्रमशः 5px छोड़ने के बाद विशेष ब्लॉक शुरू होता है

अब ऋणात्मक मार्जिन, जब इसका उपयोग किया जाता है तो यह उनके मूल ब्लॉक सीमा को अपराध करता है। यही वह अपने माता-पिता की सीमाओं से परे हो जाता है। तो यहां आपने मार्जिन-दाएं निर्दिष्ट किया: -99 99 पीएक्स; तो यह कक्षा की सीमा से परे हो जाता है। आर, फिर भी यह आपको एक विचार दे रहा है कि -99 99 पीएक्स एक बड़ा मूल्य है, स्क्रीन से परे div को फेंक देना चाहिए, लेकिन सीमित पाठ के रूप में यह केवल पाठ के साथ क्षेत्र को दिखाता है।

कक्षा ए 1 में अधिक टेक्स्ट डालने से यह निश्चित रूप से स्क्रीन स्कोप से आगे जाएगा, लेकिन पाठ पर्याप्त से अधिक होना चाहिए।

Graphical Explanationअपडेट किया गया

+0

आपको बहुत धन्यवाद। लेकिन मैं आपका समझ नहीं पा रहा हूं "लेकिन सीमित पाठ के रूप में यह केवल पाठ के साथ क्षेत्र को दिखाता है।" जैसा कि मैंने jsfiddle में परीक्षण किया है, यदि 'स्थिति' '' 1'' 'सापेक्ष' है, तो' .a1' की चौड़ाई 99 99 + 100 पीएक्स होगी जबकि 'पूर्ण' नहीं होगी। –

+0

खुशी है कि आपको अपना जवाब मिला है, लेकिन मैंने एक बार फिर ग्राफिक रूप से सर्वोत्तम स्पष्टीकरण देने की कोशिश की। जब तक आप कोई समस्या नहीं पूछें तो पूछें। यहां यह है ---- [लिंक] (http://www.divyashah.in/stackoverflow/images/margins.png) – divy3993

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