ใช่ตามสเป็คมีวิธี
ในขณะที่ฉันยอมรับว่า Graeme Blackwood ควรเป็นคำตอบที่ยอมรับได้เพราะจริง ๆ แล้วมันแก้ปัญหาได้ แต่ก็ควรสังเกตว่าองค์ประกอบคงที่สามารถวางตำแหน่งค่อนข้างตรงกับคอนเทนเนอร์
ฉันสังเกตโดยบังเอิญว่าเมื่อสมัคร
-webkit-transform: translateZ(0);
กับร่างกายมันทำให้เด็กคงที่เมื่อเทียบกับมัน (แทนวิวพอร์ต) ดังนั้นองค์ประกอบleft
และtop
คุณสมบัติคงที่ของฉันตอนนี้สัมพันธ์กับภาชนะ
ดังนั้นฉันจึงทำการวิจัยและพบว่าปัญหาได้รับการครอบคลุมโดยEric Meyerและแม้ว่ามันจะรู้สึกเหมือน "เคล็ดลับ" ปรากฎว่านี่เป็นส่วนหนึ่งของข้อกำหนด:
สำหรับองค์ประกอบที่รูปแบบถูกควบคุมโดยรูปแบบกล่อง CSS ค่าใด ๆ นอกเหนือจากไม่มีสำหรับผลลัพธ์การแปลงในการสร้างทั้งบริบทการซ้อนและบล็อกที่มี วัตถุทำหน้าที่เป็นบล็อกที่มีสำหรับการสืบทอดตำแหน่งถาวร
http://www.w3.org/TR/css3-transforms/
ดังนั้นหากคุณใช้การแปลงใด ๆ กับองค์ประกอบหลักมันจะกลายเป็นบล็อกที่มี
แต่...
ปัญหาคือการใช้งานดูเหมือนว่าบั๊กกี้ / ครีเอทีฟเนื่องจากองค์ประกอบยังหยุดการทำงานตามที่ได้รับการแก้ไข (แม้ว่าบิตนี้จะไม่ได้เป็นส่วนหนึ่งของข้อมูลจำเพาะ)
พฤติกรรมแบบเดียวกันนี้จะพบได้ใน Safari, Chrome และ Firefox แต่ไม่ใช่ใน IE11 (โดยที่องค์ประกอบคงที่จะยังคงได้รับการแก้ไข)
สิ่งที่น่าสนใจอีกอย่าง (ที่ไม่มีเอกสาร) คือเมื่อองค์ประกอบคงที่อยู่ภายในองค์ประกอบที่ถูกเปลี่ยนรูปในขณะที่มันtop
และleft
คุณสมบัติจะเกี่ยวข้องกับภาชนะบรรจุเคารพbox-sizing
คุณสมบัติบริบทการเลื่อนของมันจะขยายไปตามขอบขององค์ประกอบราวกับว่ากล่อง -sizing border-box
ถูกกำหนดให้ สำหรับความคิดสร้างสรรค์ที่นั่นสิ่งนี้อาจกลายเป็นของเล่น :)
ทดสอบ