यहां दो परीक्षण फ़ाइलें हैं:IE7 तालिका सीएसएस द्वारा अदृश्य बनाया कोशिकाओं बाद में वर्ग परिवर्तन (??) को दिखाई नहीं बनाया जा सकता है
उन पर मार्कअप दो पेज लगभग सभी समान हैं। दो कॉलम वाली एक टेबल है। <th>
और <td>
एक कॉलम के तत्व (दूसरे एक) को कक्षा "जंक" दिया जाता है।
"अच्छा" पृष्ठ में, जब आप इसे लोड करते हैं तो आपको शीर्ष पर अनचेक चेकबॉक्स दिखाई देगा। यदि आप चेकबॉक्स चेक करते हैं, तो दूसरा कॉलम गायब हो जाना चाहिए। यदि आप इसे अनचेक करते हैं, तो दूसरा कॉलम वापस आता है। "खराब" पृष्ठ में, चेकबॉक्स चेक आउट शुरू होता है। इसे अनचेक करने से आईई 7 में कोई प्रभाव नहीं पड़ता है, हालांकि यह अन्य ब्राउज़रों में काम करता है जो मौलिक बुराई से नहीं हैं।
चेकबॉक्स को थोड़ी जावास्क्रिप्ट दिनचर्या में लगाया गया है जो <table>
टैग से कक्षा "कॉम्पैक्ट" को जोड़ता या हटा देता है।
table.compact th.junk, table.compact td.junk {
display: none;
}
इस प्रकार "अच्छा" पृष्ठ पर क्या होता है क्या होना चाहिए है: वहाँ एक स्टाइलशीट कि यह भी शामिल है है। हालांकि, ऐसा लगता है कि आईई 7 (शायद 6 भी) में यदि तालिका तत्व शुरू करते हैं, तो प्रारंभ में प्रस्तुत किया गया था कि वे अदृश्य होने के लिए स्टाइल किए गए हैं, वे कभी भी नहीं देख पाएंगे, चाहे डीओएम में आने वाले बदलावों के बावजूद नए स्टाइल नियमों को प्रभाव में लाएं और उन्हें दृश्यमान छोड़ दें। (यह विशेष रूप से <table>
भागों के साथ एक मुद्दा हो प्रकट होता है; मैं एक ही तंत्र कहीं और उपयोग कर रहा हूँ अन्य तत्वों और वे सब काम ठीक से।)
तो, सवाल यह है: किसी को भी कुछ हैक — लेकिन विद्रोही — की जान लेता है इसका उपयोग इस बेवकूफ व्यवहार को पाने के लिए किया जा सकता है? जाहिर है, मैं आईई 7 को प्रासंगिक टॉगल कंट्रोल सेट के साथ अपने विचारों को शुरू करने की कोशिश कर सकता हूं ताकि तालिका कक्ष दिखाई दे सकें, लेकिन मेरे मामले में यह एक टेबल के आसपास होता है जो AJAX प्रतिक्रिया के रूप में उत्पादित होता है, और इसलिए यह एक बड़ा होगा गड़बड़ मैं बल्कि टालना चाहूंगा। (तालिका वास्तव में एक टेबल भी है; यह एक लेआउट हैक नहीं, टैबलेट जानकारी का प्रदर्शन है।)
मैंने चारों ओर गुगल किया है और कुछ भी नहीं मिला है, जो आश्चर्यचकित नहीं होना चाहिए यदि आप मानते हैं कि आप कितने हिट करते हैं "आईई 7 लेआउट बग" खोज से प्राप्त करें।
शायद आप टेबल लेआउट बदल सकते हैं, एक डोम/सीएसएस जाने रीफ्रेश होता है, और इसे वापस सेट करें ... –
@pst यह मेरा वर्तमान सबसे अच्छा विचार है - मेरे पास AJAX- लोड की गई सामग्री में एक आई 7-केवल स्क्रिप्ट टैग शामिल हो सकता है जो नियंत्रण सेट करता है जैसे सब कुछ दिखाई दे रहा है, और यह भी एक समय समाप्ति ताकि 1/4 दूसरा बाद में यह क्या यह वास्तव में होना चाहिए था पर रीसेट हो जाता है (प्लस मैं अपने जावास्क्रिप्ट सामान को गति प्रदान) की शुरूआत। बदसूरत लेकिन यह काम करता है। मैं इस बारे में उत्सुक हूं कि कुछ अजीब सीएसएस हैक इसे थोड़ा कम पागल बनाने के लिए है या नहीं। हालांकि धन्यवाद! – Pointy