بهعنوان توسعهدهندگان فرانتاند، در طول سالها آرزوی چیزهای زیادی را داشتهایم - راههایی برای متمرکز کردن چیزها در CSS، کپسوله کردن سبکها، تنظیم نسبت ابعاد یک عنصر، کنترل دقیقتر روی رنگهایمان، انتخاب یک عنصر بر اساس آن ویژگیهای کودکان، لایههای ویژگی را مدیریت میکند، به عناصر اجازه میدهد تا به عرض والدین خود پاسخ دهند... این فهرست همچنان ادامه دارد.
و اکنون که به تمام آرزوهایمان و بیشتر از آن رسیده ایم، برخی از ما می پرسیم - آیا اکنون داریم؟ خیلی زیاد CSS؟
دوران تاریک
اگر شما نیز مانند من در دوران کودکی CSS به توسعه وب پرداختید، ایده داشتن بیش از حد از آن مضحک به نظر می رسد.
در گذشته، تقریباً کل شرح وظایف یک توسعهدهنده فرانتاند شامل رسیدگی به محدودیتهای CSS بود. این هک clearfix برای پاک کردن شناورها، هک 100% padding برای ایجاد div های مربعی، نه استفاده از خصوصیات غیرمرتبط به صورت نیمه تصادفی برای فریب اینترنت اکسپلورر برای انجام پیشنهاد شما.
در آن زمان، مرورگر یک دشمن فریبنده بود که باید از طریق حیله گری محض و افسون های مخفیانه شکست خورد. امروز، ویژگی عالی در انتظار است و فقط یک کپی پیست در MDN انجام می شود.
عصر جدید CSS
اما امروز همه چیز بسیار متفاوت است: نه تنها همه چیز سریعتر حرکت می کند، بلکه فروشندگان مرورگرها نیز سریعتر حرکت می کنند در واقع مراقبت در مورد خوشحال کردن توسعه دهندگان! میدونم منم باورم نمیشد اما من سالانه را اجرا می کنم وضعیت CSS نظرسنجی توسعه دهندگان (که است به هر حال اکنون باز کنید - بروید آن را بگیرید!) و من به درستی می دانم که تیم های توسعه مرورگر از نتایج نظرسنجی (در میان بسیاری از نقاط داده دیگر) برای اطلاع رسانی نقشه راه خود استفاده می کنند.
فراتر از این، گوگل همچنین به تامین مالی کار من در نظرسنجی کمک کرده و حتی استخدام کرده است لیا ورو در انتخاب سوالات نظرسنجی امسال پیشتاز باشید.
این فقط گوگل نیست. کوبیدن به سافاری و اپل به طور کلی مد شده است (گاهی اوقات شایسته است)، اما نمی توانید انکار کنید که شخصی مانند جن سیمونز در مورد گوش دادن به توسعه دهندگان و بهبود وب است.
و نه تنها فروشندگان مرورگر به تنهایی CSS را بهبود می بخشند. آنها حتی در سراسر خطوط نبرد با ابتکاراتی مانند اینتروپ 2023 برای کمک به کاهش ناسازگاری و ناسازگاری بین مرورگرها.
خیلی بیشتر از یک چیز خوب؟
نتیجه همه اینها این است که ما اکنون با شرمساری ثروت CSS روبرو هستیم و رسیدن به آن دشوار است. شبکه CSS تقریباً پنج سال پیش در مرورگرهای اصلی پشتیبانی میشود، اما هنوز هر بار که از آن استفاده میکنم مرجعی را بررسی میکنم. و به همان اندازه باحال زیرشبکه به نظر می رسد، من هنوز حتی آن را امتحان نکرده ام.
در طول فرآیند انتخاب کدام ویژگی های CSS را باید در وضعیت CSS گنجاند یا نهلیا و من ویژگی های زیادی را در نظر گرفتیم، اما تعداد کمی را نیز رد کردیم. چند نمونه از ویژگی ما نمی عبارتند از:
- La
linear()
عملکرد تسهیل کننده، که به شما امکان می دهد منحنی های کاهش را با دانه بندی بیشتر تعریف کنید. - La
env()
تابع، که به شما امکان می دهد از متغیرهای تعریف شده توسط مرورگر یا دستگاه استفاده کنید. - La
scrollbar-width
ویژگی، که به کنترل ظاهر یک اسکرول کمک می کند. - La
margin-trim
ویژگی، که به شما امکان میدهد نحوه رفتار حاشیههای کودکان ظرف را کنترل کنید.
همه اینها به طور بالقوه بسیار مفید هستند و در طول خشکسالی CSS در سال های گذشته، همه خبرهای مهمی بودند. اما در شرایط امروزی، آنها باید برای جلب توجه با اعلانهای بسیار بزرگتر، مانند انتخابگر has() یا تودرتوی CSS مبارزه کنند!
هیجان زده نیست
به عنوان سیلوستار بیستروویچ می نویسد:، او "در مورد همه این ویژگی های جدید CSS هیجان زده نیست." این بازتاب در توییتر پیدا کرد، با سارا سویدان با بیان اینکه چیزی که به آن اهمیت می دهد «عملی بودن است، نه اینکه یک ویژگی در حال حاضر چقدر براق به نظر می رسد».
ممکن است این یک نگرش منفی به نظر برسد، اما به نظر من قابل درک است. از هیچ کس نمی توان انتظار داشت که با بسیاری از ویژگی های جدید همراه شود!
یکی دیگر از پیامدهای ناخواسته (یا شاید، در نظر گرفته شده؟) این است که هر چه CSS پیچیده تر می شود، نوار را برای هر شرکت جدیدی که می خواهد موتور مرورگر توسعه دهد افزایش می دهد - تا در مورد حجم کاری اضافه شده در مورد نگهداری و مستندسازی همه چیز صحبتی نشود. این ویژگی های جدید
فراگیری CSS
همچنین این نگرانی بسیار معتبر وجود دارد که CSS ممکن است به مناطقی تقسیم شود که رسیدگی به آنها کاملاً مناسب نیست. این نکته دیگری است که سارا سویدان در واکنش به اجرای آزمایشی جدید CSS Toggles به آن اشاره کرد (در اینجا یک بلیط در مورد آن بحث می شود):
بسیاری به این نکته بسیار معقول اشاره کرده اند که این نوع رفتار به بهترین وجه توسط یک عنصر HTML جدید به جای مدیریت وضعیت تغییر صرفاً از طریق CSS انجام می شود، و اینکه CSS ممکن است بهترین رسانه برای اطمینان از رسیدگی صحیح به مسائل دسترسی نباشد.
هنگامی که CSS چیزی را که قبلاً از طریق جاوا اسکریپت مدیریت میشد، تصاحب میکند، به طور کلی به عنوان یک چیز خوب در نظر گرفته میشود، زیرا اغلب مقدار کدی را که مرورگر باید بارگذاری میکند کاهش میدهد. بنابراین، من با احتیاط در مورد CSS Toggles خوشبین هستم و اعتماد دارم که کارگروه CSS به درستی به نگرانی های جامعه رسیدگی خواهد کرد. اما هنوز ممکن است روزی فرا رسد که نگران باشیم که CSS ممکن است فراتر از مرزهای خود گسترش یابد و به مسئولیت های HTML و جاوا اسکریپت تجاوز کند.
انتظارات جدید
و شاید این چیزی است که باید تغییر کند: شاید ما باید انتظاری را که توسعه دهندگان CSS باید بدانند کنار بگذاریم تمام از CSS؟
این انتظار از روزهایی نشأت میگیرد که CSS یک فکر بعدی بود، آن نحو کمی آزاردهنده که باید یاد میگرفتید تا دکمهتان را دقیقاً همانطور که مشتری خواسته بود آبی و پررنگ کنید. اما من فکر میکنم باید بپذیریم که CSS امروزی ممکن است برای یک فرد بسیار گسترده باشد، بهویژه علاوه بر سایر وظایف فرانتاند.
As میشل بارکر قرار می دهد:
و این جایی است که من، خودم، در پایان فرود میآیم. من با این واقعیت که احتمالاً هرگز از همه ویژگیهای CSS ممکن استفاده نخواهم کرد - یا حتی درباره آن اطلاعی ندارم، صلح کردهام. و این از کسی می آید که یک نظرسنجی در مورد CSS انجام می دهد!
اما این ویژگی های جدید مطمئنا مفید خواهند بود کسی. یک نفر در مورد آنها پست های وبلاگ می نویسد، با آنها CodePen های جالبی ایجاد می کند، در مورد آنها صحبت می کند. آن شخص یک توسعه دهنده باحال، جوان و پرانرژی خواهد بود که هنوز تمام موهای خود را دارد. به عبارت دیگر، من نخواهم بود - و این خوب است.
و شاید شما نگران باشید که این توسعهدهنده جدید تحت تأثیر همه چیزهایی که باید در یک لحظه یاد بگیرند غرق شود. اما همه چیزهایی را که آنها دارند در نظر داشته باشید نه دقیقاً به این دلیل که با این جایگزین های جدید جایگزین شده است، باید در مورد آن یاد بگیرید. می دانم که هر زمان که بخواهم آن معامله را انجام خواهم داد.
اما در مورد آن فکر کنید: در چند سال گذشته، نه تنها شاهد افزایش زیادی در تعداد دستگاههایی بودیم که باید به آنها رسیدگی کنیم، بلکه متوجه شدیم که همه ما به روشهای متفاوتی از وب استفاده میکنیم. به ناتوانی ها، شرایط فعلی یا فقط ترجیحات شخصی. آیا CSS نباید با این واقعیت جدید سازگار شود؟
حالا، باید اعتراف کنم که همه اینها کمی حس نوستالژیک در من ایجاد کرده است... پس ببخشید تا چند شناور را پاک کنم، فقط به خاطر زمان قدیم.
همانطور که اشاره کردم، سالانه بررسی وضعیت CSS اکنون باز است چه فکر می کنید CSS بیش از حد وجود دارد یا خیر، این نظرسنجی راهی عالی برای اجازه دادن به توسعه دهندگان مرورگر است که احساس شما را بدانند، بنابراین برو پر کن اگر 10 دقیقه وقت دارید