2013-10-01 11 views
6

मैं यह पता लगाने की कोशिश कर रहा हूं कि सफारी ऊंचाई के रूप में अपने माता-पिता की अधिकतम ऊंचाई विशेषता क्यों नहीं पढ़ेगी। क्रोम और फ़ायरफ़ॉक्स दोनों इसे सही ढंग से पढ़ेंगे, लेकिन सफारी माता-पिता की अधिकतम ऊंचाई को अनदेखा कर देती है और इसके बजाय पृष्ठ की पूर्ण ऊंचाई को पकड़ लेती है।सफारी ऊंचाई अधिकतम ऊंचाई तत्व के अंदर 100% तत्व

आप देख सकते हैं यह here

सीएसएस:

body, html { 
    height: 100%; 
    margin: 0; 
} 
div { 
    height: 100%; 
    max-height: 300px; 
    width: 100px; 
} 
div span { 
    background: #f0f; 
    display: block; 
    height: 100%; 
} 

मार्कअप:

<div> 
    <span></span> 
</div> 

मैं OSX 10.8.5 पर सफारी 6.0.5 का उपयोग कर रहा हूँ।

+0

यह की तरह लगता है [इस बग] (https://bugs.webkit.org/show_bug.cgi?id=26559) जिम्मेदार है। यहां इसके बारे में एक [उत्तर] (http://stackoverflow.com/a/8468131/1456376) भी है। मेरे लिए काम करने वाला एकमात्र समाधान 'div {position: absolute जोड़ रहा था; } ', [इसे यहां आज़माएं] (http://jsfiddle.net/nbVXN/)। – insertusernamehere

+0

@insertusernamehere परफेक्ट। मुझे अभी भी सफारी से नफरत है;) यदि आप इसे उत्तर के रूप में रखते हैं, तो मैं इसे स्वीकार करूंगा। – Chad

उत्तर

19

यह समस्या वेबकिट में एक रिपोर्ट बग के कारण होता है:

Bug 26559 - When a block's height is determined by min-height/max-height, children with percentage heights are sized incorrectly

यह अब तक क्रोम के लिए तय किया जा रहा है, लेकिन सफारी के लिए नहीं।

div {  
    position: absolute; 
} 

डेमो

Try before buy

+1

फिक्स्ड पोजिशनिंग काम भी करता है। धन्यवाद! – Chad

+0

@insertusernamehere, लेकिन दूसरे मामले के बाद आप दो divs बनाने के मामले के बारे में क्या? अपना एचटीएमएल लें और इसे कॉपी करें, फिर मूल के बाद कॉपी किए गए div को रखें। क्या आप प्रतिलिपि देख सकते हैं? ... – user2783091

0

इसी समस्या तो आप Safari पर प्रकट होता है:

केवल गैर- JavaScript वैकल्पिक हल है कि मेरे लिए काम किया, माता पिता के तत्व पर एक निरपेक्ष स्थिति उपयोग कर रहा है मूल तत्व flexbox गुणों का उपयोग करता है - कंटेनर ऊंचाई का 100% नहीं लेगा। एक अन्य समाधान (position: absolute; के अलावा) vh (व्यूपोर्ट ऊंचाई) इकाइयों का उपयोग करने के होगा:

div { 
height: 100vh; 
} 
संबंधित मुद्दे