ในหลายกรณีองค์ประกอบต้องถูกจัดตำแหน่งเพื่อz-indexให้ทำงานได้
แน่นอนการใช้position: relativeองค์ประกอบในคำถามน่าจะแก้ปัญหาได้ (แต่มีรหัสไม่เพียงพอที่จะรู้ได้อย่างแน่นอน)
อันที่จริงposition: fixed, position: absoluteและposition: stickyยังจะช่วยให้z-indexแต่ค่าเหล่านั้นยังเปลี่ยนรูปแบบ ด้วยposition: relativeรูปแบบจะไม่ถูกรบกวน
เป็นหลักตราบใดที่องค์ประกอบไม่ได้position: static(การตั้งค่าเริ่มต้น) จะถูกพิจารณาว่าอยู่ในตำแหน่งและใช้z-indexงานได้
คำตอบมากมายสำหรับ"ทำไม z-index จึงไม่ทำงาน" คำถามยืนยันว่าz-index ใช้งานได้กับองค์ประกอบที่มีตำแหน่งเท่านั้น ในฐานะของ CSS3 สิ่งนี้ไม่เป็นความจริงอีกต่อไป
องค์ประกอบที่เป็นรายการดิ้นหรือรายการตารางสามารถใช้z-indexแม้ในขณะที่เป็นpositionstatic
จากรายละเอียด:
4.3 Flex Item Z- การสั่งซื้อ
รายการ Flex สีเหมือนกับบล็อกแบบอินไลน์ยกเว้นการสั่งซื้อเอกสารที่สั่งการแก้ไขถูกนำมาใช้ในสถานที่ของการสั่งซื้อเอกสารดิบและz-indexค่าอื่น ๆ กว่าautoสร้างบริบทซ้อนแม้ว่ามีpositionstatic
5.4 การสั่งซื้อแกน Z: z-indexคุณสมบัติ
การสั่งซื้อภาพวาดของรายการตารางเป็นเหมือนกับบล็อกแบบอินไลน์ยกเว้นการสั่งซื้อเอกสารเพื่อแก้ไขที่ใช้ในสถานที่ของการสั่งซื้อเอกสารดิบและz-indexค่าอื่น ๆ กว่าautoสร้างบริบทซ้อนแม้ว่า
มีpositionstatic
นี่คือตัวอย่างของz-indexการทำงานกับไอเท็มเฟล็กซ์ที่ไม่มีตำแหน่ง: https://jsfiddle.net/m0wddwxs/
Stacking Contextเพื่อสร้าง