انقلاب چیدمان ریاضی در CSS: آشنایی با sibling-index و sibling-count

انقلاب چیدمان ریاضی در CSS: آشنایی با sibling-index و sibling-count

با توابع جدید sibling-index() و sibling-count() آشنا شوید؛ دو قابلیت تازه در زبان CSS که نگاه توسعه‌دهندگان را به شمارش عناصر و چیدمان‌های ریاضی تغییر می‌دهد. این توابع برای نخستین بار امکان دسترسی به ایندکس هر عنصر در میان خواهرزادگانش و همچنین تعداد کل آن‌ها را مستقیماً درون استایل‌شیت فراهم می‌کنند.

یکی از جذاب‌ترین کاربردهای این توابع، ساخت افکت آبشاری پلکانی یا همان Staggered Cascade تنها در یک خط CSS است؛ چیزی که تا پیش از این نیازمند نوشتن قوانین متعدد :nth-child() یا استفاده از راه‌کارهای جاوااسکریپتی بود.

به گفته توسعه‌دهندگان، این رویکرد کاملاً مقیاس‌پذیر است؛ چه ۵ المان داشته باشید و چه ۵۰۰۰ المان، بدون افت عملکرد همان رفتار روان را ارائه می‌دهد. این ویژگی برای رابط‌های کاربری پویا مثل لیست‌های مجازی، گالری‌ها و انیمیشن‌های ورود یک نقطه عطف محسوب می‌شود.

به نقل از کدیران

توابع sibling-index() و sibling-count() نشان‌دهنده یک تغییر فلسفی مهم در زبان CSS هستند؛ زبانی که سال‌ها برای پویایی به جاوااسکریپت متکی بود. تا پیش از این، برای ایجاد جلوه‌های متوالی روی لیستی از عناصر، توسعه‌دهندگان ناچار بودند یا قوانین متعدد :nth-child() را به صورت دستی بنویسند، یا با جاوااسکریپت ایندکس هر عنصر را محاسبه کرده و به صورت استایل اینلاین تزریق کنند. این رویکرد نه تنها کد را طولانی و مستعد خطا می‌کرد، بلکه با بزرگ شدن لیست‌ها به ۵۰۰۰ مورد و بیشتر، عملکرد صفحه را به شدت تحت فشار قرار می‌داد.

ورود این دو تابع به معنای در دسترس قرار گرفتن منطق ریاضی پویا در لایه استایل است. sibling-index() ایندکس هر عنصر را در زنجیره خواهرزادگانش برمی‌گرداند و sibling-count() مجموع تعداد آن‌ها را؛ ترکیب این دو امکان محاسبات نسبت‌سازانه‌ای را فراهم می‌کند که قبلاً غیرممکن بود؛ مثلاً تقسیم یک فاصله بر کل تعداد و توزیع یکنواخت آن در یک خط.

در نگاه کارشناسان کدیران، این پیشرفت ضمن اینکه تمرکز توسعه‌دهندگان را بیشتر به سمت CSS هدایت می‌کند، به کاهش حجم باندل جاوااسکریپت و بهبود زمان تعامل صفحه کمک خواهد کرد. انتظار می‌رود فریم‌ورک‌های مدرن و کتابخانه‌های انیمیشن به سرعت این توابع را جذب کنند و الگوهای رایجی مثل انیمیشن‌های آبشاری جایگزین کدهای دستی شوند. البته باید در نظر داشت که پشتیبانی مرورگرها در مراحل اولیه می‌تواند چالش موقتی باشد، اما با توجه به سابقه فازهای آزمایشی CSS در سال‌های اخیر، طی شدن این مسیر فقط مسأله زمان است.

منبع: SmashingMagazine (مشاهده متن اصلی)