मेरे पास 3 divs, #left, #center और #right है कि मैं एक ही पंक्ति पर स्थिति रखना चाहता हूं जिसमें एक विशिष्ट चौड़ाई है, 300px कहें।गतिशील तत्व चौड़ाई और आईई 9 उप-पिक्सेल परिशुद्धता
# बाएं और # दाएं कम सामग्री है, प्रत्येक 50px कहें, और मैं उन्हें पूरी तरह से प्रदर्शित कर रहा हूं।
#center में बहुत सारी सामग्री है, 400px कहें, और मैं लाइन पर शेष स्थान के भीतर जितना संभव हो प्रदर्शित करना चाहता हूं। इसके लिए, मैंने # लेजर के भीतर # सेंसर की सामग्री शामिल की है।
मैंने # बाएं और # सेंसर को बाएं और दाएं से दाएं तरफ तैर दिया है।
<div id="left">
LEFT
</div>
<div id="center">
<div id="inner">
LONG CONTENT ...
</div>
</div>
<div id="right">
RIGHT
</div>
प्रश्न 1: वहाँ हमारे उदाहरण में #center सीएसएस के माध्यम से लाइन पर उपलब्ध शेष अंतरिक्ष के सभी ले div (बनाने का एक रास्ता है, #center 200px विस्तृत हो गया है - रेखा की चौड़ाई, 300 पीएक्स, # बाएं और # राइट की चौड़ाई, प्रत्येक 50 पीएक्स)?
प्रश्न 2: मुझे सीएसएस के माध्यम से कोई समाधान नहीं मिला और मैंने शेष उपलब्ध स्थान की गतिशील गणना करने के लिए jQuery का उपयोग किया है। यह IE9 को छोड़कर सभी ब्राउज़रों में ठीक काम करता है।
आईई 9 के साथ समस्या यह है कि इसमें उप-पिक्सेल परिशुद्धता है और jQuery तत्वों के आयामों के लिए केवल पूर्णांक मान देता है।
यहां एक उदाहरण दिया गया है: IE9 #.5 को 50.5px चौड़ाई के रूप में देखता है जबकि jQuery इसे 50px के रूप में देखता है। यह अंतर IE9 में लेआउट को तोड़ने का कारण बनता है।
यदि मुझे जावास्क्रिप्ट के माध्यम से उपलब्ध स्थान की गणना करने की आवश्यकता है, तो मैं इस IE9 मुद्दे को दूर करने के लिए क्या कर सकता हूं?
main = $("#main").width();
centerWidth = main - ($("#left").width() + $("#right").width());
$("#center").width(centerWidth);
या:
मुझे यकीन है कि अगर यह काम करेगा नहीं कर रहा हूँ, लेकिन तुम सिर्फ मंजिल मान दिया और 50.5 50 के लिए जाना बना सकता है? यदि मूल्य हमेशा अधिक होते हैं, तो यह काम करेगा। अगर यह 49.5 कहता था, तो आप एक पिक्सेल छोटा हो जाएंगे, लेकिन कम से कम आपकी सामग्री फिट नहीं होगी। –
मेरे लेआउट में IE9 का उपयोग किए गए फ्लोट वैल्यू को प्रभावित करने का कोई तरीका नहीं है। जब मैं IE9 में jQuery के साथ तत्व चौड़ाई को कॉल करता हूं, तो यह हमेशा एक पूर्णांक, 50px देता है। लेकिन आंतरिक प्रदर्शन में, आईई 9 फ्लोट्स, 50.5 पीएक्स का उपयोग करता है। मुझे यह पता है क्योंकि मैंने आईई 9 डेवलपर टूल्स को देखा और तत्व आयामों के लिए यह फ्लोट वैल्यू प्रदर्शित करता है। – jsgroove
तो जब आप चौड़ाई को 50px पर सेट करते हैं, यानी 9 इसे 50.5px पर सेट करता है? यह अजीब बात है ... मैंने इस तरह चीजों को एक पिक्सेल स्तर पर पहले रेखांकित किया है और कभी परेशानी नहीं हुई है। अजीब लगता है। शुभकामनाएं, क्षमा करें मैं मदद करने में सक्षम नहीं था! –