49. سياق التكديس و Z-Index
عندما تتداخل العناصر بسبب التموضع (relative, absolute, fixed, sticky) ، فإن z-index يحدد أي عنصر يظهر في الأعلى (أقرب إلى المستخدم).
خاصية Z-Index
- تأخذ
z-indexعدداً صحيحاً (موجب أو سالب أو صفر). - العناصر ذات
z-indexالأعلى تتراكم فوق العناصر ذاتz-indexالأقل.
css .background-layer { position: absolute; z-index: 1; }
.overlay-menu { position: fixed; z-index: 1000; /* هذا يضمن أن القائمة تكون دائماً في الأعلى تقريباً */ }
القاعدة الحاسمة: إنشاء سياق تكديس
يعمل z-index فقط إذا كان العنصر متموضعاً (relative أو absolute أو fixed أو sticky). علاوة على ذلك، يقارن z-index فقط العناصر داخل نفس سياق التكديس.
يتم إنشاء سياق التكديس بواسطة:
- العنصر الجذري (
<html>). - عنصر بقيمة
positionغيرstaticوقيمةz-indexغيرauto(مثلposition: relative; z-index: 1;). - يتم أيضاً إنشاء سياقات جديدة بواسطة عناصر Flexbox/Grid وخصائص معينة للشفافية/التحويل (opacity/transform).
المشكلة: إذا كان العنصر A في سياق 1 (z-index: 10) والعنصر B في سياق 2 (z-index: 1) ، فقد يظل العنصر B يظهر فوق العنصر A إذا كان السياق 2 نفسه مكدساً فوق السياق 1.