ثبّت الشارات والرؤوس والنوافذ المنبثقة بالضبط حيث تريد، باستخدام مواضع CSS وسلّم z-index محكم الإدارة.
افتح هذا الدرس في Kodokonافتراضياً، كل عنصر هو position: static ويتبع تدفّق المستند. ولـ position: relative استخدامان: إزاحة عنصر إزاحة طفيفة دون إزعاج جيرانه، وقبل كل شيء العمل كمرجع للأبناء ذوي position: absolute. إنه أكثر أنماط التموضع شيوعاً: شارة عرض، أو تلميحة، أو أيقونة مثبّتة في زاوية من أبيها.
.product-card {
position: relative;
}
.promo-badge {
position: absolute;
top: 12px;
right: 12px;
}يثبّت position: fixed عنصراً على منفذ العرض، بصرف النظر عن التمرير: شريط ملفات تعريف الارتباط، زر العودة إلى الأعلى. أما position: sticky فهجين: يمرّر العنصر تمريراً طبيعياً مع الصفحة، ثم يثبت في مكانه بمجرد بلوغه العتبة التي تحدّدها (مثلاً top: 0). إنه الحل الحديث للرؤوس التي تبقى ظاهرة.
.site-header {
position: sticky;
top: 0;
z-index: 100;
background: white;
}عندما تتداخل العناصر، يقرّر z-index أيّها يعلو الآخر - لكن للعناصر المتموضعة فقط. اعتمِد سلّماً موثَّقاً بدلاً من قيم عشوائية: 10 للقوائم المنسدلة، و100 للرأس، و1000 للنوافذ المنبثقة. انتبه: أبٌ ينشئ سياق تكديس خاصاً به (مثلاً بقيمة opacity أقل من 1) يقيّد z-index جميع أبنائه.
.dropdown {
z-index: 10;
}
.site-header {
z-index: 100;
}
.modal-overlay {
position: fixed;
inset: 0;
z-index: 1000;
}position: absolute؟fixed وsticky؟fixed مثبَّتاً على الشاشة دائماً، بينما لا يثبت sticky في مكانه إلا اعتباراً من عتبة تمريرsticky أسرع من fixedz-index: 999 أيّ أثر؟z-index لا يعمل إلا مع Grid