हाँ, ऐनक के अनुसार, एक रास्ता है।
जबकि मैं मानता हूं कि ग्रीम ब्लैकवुड को स्वीकृत जवाब होना चाहिए, क्योंकि यह व्यावहारिक रूप से इस मुद्दे को हल करता है, यह ध्यान दिया जाना चाहिए कि एक निश्चित तत्व को इसके कंटेनर में अपेक्षाकृत तैनात किया जा सकता है।
मैंने देखा कि दुर्घटना से जब आवेदन
-webkit-transform: translateZ(0);
शरीर के लिए, इसने एक निश्चित बच्चे को इसके सापेक्ष (व्यूपोर्ट के बजाय) बनाया। इसलिए मेरे निश्चित तत्व left
और top
गुण अब कंटेनर के सापेक्ष थे।
इसलिए मैंने कुछ शोध किया, और पाया कि यह मुद्दा पहले से ही एरिक मेयर द्वारा कवर किया गया था और यहां तक कि अगर यह "ट्रिक" जैसा महसूस हुआ, तो पता चलता है कि यह विनिर्देशों का हिस्सा है:
ऐसे तत्वों के लिए जिनका लेआउट CSS बॉक्स मॉडल द्वारा शासित होता है, स्टैकिंग प्रसंग और युक्त ब्लॉक दोनों के निर्माण में परिणत परिणामों के अलावा कोई भी मूल्य नहीं होता है। ऑब्जेक्ट स्थिर तैनात वंशज के लिए युक्त ब्लॉक के रूप में कार्य करता है।
http://www.w3.org/TR/css3-transforms/
इसलिए, यदि आप किसी मूल तत्व में कोई परिवर्तन लागू करते हैं, तो यह युक्त ब्लॉक बन जाएगा।
परंतु...
समस्या यह है कि कार्यान्वयन छोटी गाड़ी / रचनात्मक लगता है, क्योंकि तत्व भी निश्चित रूप से व्यवहार करना बंद कर देते हैं (भले ही यह बिट विनिर्देशन का हिस्सा नहीं लगता है)।
वही व्यवहार सफारी, क्रोम और फ़ायरफ़ॉक्स में मिलेगा, लेकिन IE11 में नहीं (जहां तय तत्व अभी भी तय रहेगा)।
एक और दिलचस्प (अविवादित) बात यह है कि जब एक निश्चित तत्व एक परिवर्तित तत्व के अंदर समाहित होता है, जबकि इसके top
और left
गुण अब कंटेनर से संबंधित होंगे, box-sizing
संपत्ति का सम्मान करते हुए , इसका स्क्रॉलिंग संदर्भ तत्व की सीमा पर विस्तार करेगा, जैसे कि बॉक्स -साइजिंग के लिए सेट किया गया था border-box
। कुछ रचनात्मक लोगों के लिए, यह संभवतः एक खेल बन सकता है :)
परीक्षा