इंटरनेट एक्सप्लोरर 7 पर पूरी तरह से तैनात माता-पिता में प्रतिशत चौड़ाई बाल तत्व


296

मेरे पास divकई बच्चों वाले एक बिल्कुल तैनात हैं, जिनमें से एक अपेक्षाकृत तैनात है div। जब मैं percentage-based widthबच्चे पर उपयोग करता हूं div, तो यह 0 widthIE7 पर गिर जाता है, लेकिन फ़ायरफ़ॉक्स या सफारी पर नहीं।

अगर मैं उपयोग pixel widthकरता हूं , तो यह काम करता है। यदि माता-पिता अपेक्षाकृत तैनात हैं, तो बच्चे की प्रतिशत चौड़ाई काम करती है।

  1. क्या यहाँ कुछ याद आ रहा है?
  2. क्या pixel-based widthबच्चे के अलावा इसके लिए एक आसान तय है ?
  3. क्या सीएसएस विनिर्देशन का कोई क्षेत्र है जो इसे कवर करता है?

जवाबों:


147

माता-पिता divको परिभाषित करने की आवश्यकता होती है width, या तो पिक्सेल में या प्रतिशत के रूप में। इंटरनेट एक्सप्लोरर 7 में, माता-पिता को सही ढंग से काम करने के लिए बच्चे के प्रतिशत के लिए divपरिभाषित होना चाहिए ।widthdiv


60

यहाँ कुछ नमूना कोड है। मुझे लगता है कि तुम इसे खोज रहे हो। निम्नलिखित फ़ायरफ़ॉक्स 3 (मैक) और IE7 में बिल्कुल समान प्रदर्शित करता है।

#absdiv {
  position: absolute; 
  left: 100px; 
  top: 100px; 
  width: 80%; 
  height: 60%; 
  background: #999;
}

#pctchild {
  width: 60%; 
  height: 40%; 
  background: #CCC;
}

#reldiv {
  position: relative;
  left: 20px;
  top: 20px;
  height: 25px;
  width: 40%;
  background: red;
}
<div id="absdiv">
    <div id="reldiv"></div>
    <div id="pctchild"></div>
</div>


38

8 से पहले IE के पास अपने बॉक्स मॉडल का एक लौकिक पहलू है जो विशेष रूप से प्रतिशत-आधारित चौड़ाई के साथ एक समस्या पैदा करता है। आपके मामले में यहां divडिफ़ॉल्ट रूप से एक पूरी तरह से तैनात की चौड़ाई नहीं है। इसकी चौड़ाई को इसकी सामग्री की पिक्सेल चौड़ाई के आधार पर काम किया जाएगा और सामग्री के प्रदान किए जाने के बाद इसकी गणना की जाएगी। तो इस बिंदु पर, IE का सामना करता है और अपने अपेक्षाकृत divअपने माता-पिता को तैनात करता है, इसकी चौड़ाई 0 होती है, इसलिए यह स्वयं 0 पर गिर जाता है।

यदि आप बहुत से कार्य उदाहरणों के साथ इसके बारे में अधिक गहन चर्चा करना चाहते हैं, तो यहां एक जेंडर रखें ।


35

IE7 में पूरी तरह से तैनात माता-पिता के काम में प्रतिशत चौड़ाई का बच्चा क्यों नहीं है?

क्योंकि यह इंटरनेट एक्सप्लोरर है

क्या यहाँ कुछ याद आ रहा है?

अर्थात्, अपने सह-कार्यकर्ता / ग्राहकों की जागरूकता बढ़ाने के लिए जो IE बेकार है।

क्या बच्चे पर पिक्सेल-आधारित चौड़ाई के अलावा एक आसान सुधार है?

emइकाइयों का उपयोग करें क्योंकि वे तरल लेआउट बनाते समय अधिक उपयोगी होते हैं क्योंकि आप उन्हें पैडिंग और मार्जिन के साथ-साथ फ़ॉन्ट आकार के लिए उपयोग कर सकते हैं। यदि आपका आकार बदल जाता है, तो यह आपके सफेद स्थान बढ़ता है और समानुपातिक रूप से सिकुड़ता है। मुझे नहीं लगता कि प्रतिशत ईएमएस की तुलना में बेहतर नियंत्रण देते हैं; ईएमएस (0.01 एमएम) के सौवें हिस्से में आपको निर्दिष्ट करने से रोकने के लिए कुछ भी नहीं है और ब्राउज़र फिट होने पर व्याख्या करेगा।

क्या सीएसएस विनिर्देशन का कोई क्षेत्र है जो इसे कवर करता है?

कोई नहीं, जहां तक ​​मुझे याद है emकि सीएसएस 1.0 पर अकेले फ़ॉन्ट आकार के लिए इरादा और% s हैं।


32

मुझे लगता hasLayoutहै कि पुराने ब्राउज़र में संपत्ति को लागू करने के तरीके के साथ इसका कुछ लेना देना है।

क्या आपने IE8 में अपने कोड को देखने की कोशिश की है कि क्या वहां भी काम करता है? IE8 में डीबगर ( F12) है और यह IE7 मोड में भी चल सकता है।


हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.