تخطَّ إلى المحتوى

sibling-index()

ترتيب العنصر بين إخوته sibling-index()

sibling-index() تُرجع رقم ترتيب العنصر الحالي بين إخوته المباشرين (بادئة من 1) — قيمة حيّة تُستخدم داخل calc() لحركات وتنسيقات تعتمد على الترتيب بلا جافاسكربت.

قبل هذه الدالة، أي تنسيق يحتاج معرفة "أنا العنصر رقم كم" كان يحتاج إما جافاسكربت يحسب الترتيب ويكتبه كخاصية مضمّنة، أو سلسلة طويلة من قواعد :nth-child() يدوية لكل رقم على حدة — تنكسر بصمت أول ما يتغيّر عدد العناصر.

sibling-index() تُرجع عددًا صحيحًا يمثّل ترتيب العنصر بين إخوته المباشرين (أبناء نفس الأب)، بادئة من 1 مثل :nth-child(). القيمة حيّة وتُستخدم داخل أي calc() على أي خاصية رقمية — الأشهر animation-delay لحركات القوائم المتدرّجة، لكنها تصلح أيضًا لأي حساب يعتمد على الترتيب.

الصياغة

li {
  animation-delay: calc((sibling-index() - 1) * 80ms);
}

⚡ جرّب بنفسك

عدّل الكود واضغط «تحديث» لترى النتيجة فورًا — التجربة أفضل معلّم.

🎨 محرّر HTML/CSS
<style>
  .demo-list { list-style: none; padding: 0; }
  .demo-list li {
    background: #ede9fe; margin: 4px 0; padding: 8px 12px; border-radius: 6px;
    animation: fade-up 0.4s ease both;
    animation-delay: calc((sibling-index() - 1) * 120ms);
  }
  @keyframes fade-up { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: translateY(0); } }
</style>
<ul class="demo-list">
  <li>عنصر أول</li>
  <li>عنصر ثانٍ</li>
  <li>عنصر ثالث</li>
  <li>عنصر رابع</li>
</ul>
النتيجة المباشرة:

أهم القيم

القيمةالوظيفة
sibling-index()تُرجع ترتيب العنصر بين إخوته، بادئة من 1
بلا وسائطلا تأخذ أي معاملات — الأقواس تبقى فارغة دائمًا

💡 نصائح عملية

  • اطرح 1 من الناتج إن أردت تأخيرًا صفريًا للعنصر الأول: calc((sibling-index() - 1) * 100ms)
  • ادمجها مع sibling-count() لعكس اتجاه التدرّج أو لحسابات نسبية أخرى

⚠️ أخطاء شائعة

  • توقّع أنها تبدأ من صفر → تبدأ من 1 تمامًا مثل :nth-child()
  • استخدامها بلا بديل احتياطي في مشروع يستهدف Firefox → القيمة تُهمَل بصمت فتختفي الحركة المتدرّجة بالكامل
  • الخلط بينها وبين محدّد :nth-child() → sibling-index() دالة قيمة تُستخدم داخل calc()، لا محدّدًا يطابق عنصرًا بعينه

خصائص ذات صلة

🎓 تريد فهم الصورة الكاملة خطوة بخطوة؟ ابدأ من مسار CSS الكامل بالعربي.

📚 للتعمق التقني الكامل بالإنجليزية: MDN Web Docs