تغطية CSS والأنماط غير المستخدمة
حدّد CSS غير المستخدم وأزله باستخدام لوحة Coverage في DevTools وأدوات tree-shaking مثل PurgeCSS.
تغطية CSS والأنماط غير المستخدمة درس مجاني في CSS Academy على CoddyKit. هذا هو الدرس 4 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في CSS Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة CSS Academy 4 دروس في المجموع.
مشكلة CSS غير المستخدم
غالبًا ما تحتوي ملفات CSS الكبيرة على أنماط لمكوّنات غير موجودة في الصفحة الحالية. يزيد كل بايت غير مستخدم من وقت التحليل، ووقت إنشاء CSSOM، وحجم النقل. وقد يحتوي تطبيق إنتاجي نموذجي على CSS غير مستخدم بنسبة 90% أو أكثر في أي صفحة معينة.
Coverage في Chrome DevTools
افتح لوحة Coverage في DevTools (Cmd+Shift+P ← Coverage). ابدأ التسجيل، وتفاعل مع الصفحة، ثم أوقف التسجيل. تعرض اللوحة كل ملف CSS مع نسبة الاستخدام، وتحدد القواعد غير المستخدمة باللون الأحمر. صدّر بيانات التغطية بصيغة JSON لتحليلها.
PurgeCSS
يفحص PurgeCSS ملفات HTML وJS والقوالب بحثًا عن أسماء الأصناف، ثم يزيل قواعد CSS غير المستخدمة. اضبط أنماط content glob لتطابق جميع الملفات التي قد تشير إلى أسماء الأصناف. أضف الأصناف المستخدمة ديناميكيًا (التي تضيفها JS) إلى safelist لمنع إزالتها عن طريق الخطأ.
Tailwind CSS JIT
ينشئ مترجم JIT في Tailwind فئات الأدوات المستخدمة فعلًا في القوالب فقط. وتكون CSS الناتجة صغيرة جدًا، وغالبًا ما يتراوح حجمها بين 5 و15KB لتطبيق كامل، لأن الأدوات غير المستخدمة لا تُنشأ أصلًا. وهذه هي النتيجة المثالية لعملية الإزالة.
إعداد PurgeCSS
في إعدادات webpack أو Vite، أضف PurgeCSS مع أنماط content glob التي تغطي جميع ملفات القوالب. يقبل الخيار safelist سلاسل نصية وتعبيرات نمطية وdeep-safelist لأنماط الأصناف الديناميكية المعقدة من مكتبات مثل Headless UI.
ميزة CSS Modules
ينشئ CSS Modules أسماء أصناف فريدة لكل ملف، ويزيل الوحدات غير المستخدمة عبر tree-shaking عند ضبط أداة التجميع. ولا تُضمّن في الحزمة إلا وحدات CSS المستوردة، إذ يؤدي وضع الأنماط بجوار المكوّنات طبيعيًا إلى التخلص من الأنماط العامة غير المستخدمة.
تقسيم CSS حسب المسار
قسّم CSS حسب المسار في أطر عمل مثل Next.js (استخراج CSS لكل صفحة)، أو استخدم الاستيرادات الديناميكية مع CSS Modules. ولا تحمّل كل صفحة إلا أنماطها الخاصة، مما يجعل تحليل التغطية لكل صفحة، بدلًا من التطبيق بأكمله، ذا معنى.
القياس باستخدام Lighthouse
يقدّر تدقيق Lighthouse بعنوان "Reduce unused CSS" مقدار التوفير المحتمل بالبايت عند إزالة القواعد غير المستخدمة. ويحدد موارد أوراق الأنماط التي تحتوي على نسب مرتفعة من المحتوى غير المستخدم. استخدمه دليلًا لتحديد الملفات التي ينبغي تدقيقها أولًا.
تغطية الحالات الديناميكية
لا يلتقط تحليل التغطية إلا الحالات الظاهرة أثناء التسجيل. لذلك يجب تشغيل حالات التحويم، وفتح النوافذ المنبثقة، وحالات الخطأ، والحالات التي تتطلب تسجيل الدخول يدويًا أثناء تسجيل التغطية، لتجنب إزالة أنماطها عن طريق الخطأ.
CSS أحادي الكتلة مقابل CSS لكل مكوّن
تراكم أوراق الأنماط العامة أحادية الكتلة CSS غير المستخدم بمرور الوقت مع إزالة الميزات. أما CSS الخاص بكل مكوّن، مثل CSS Modules وStyled Components وأدوات Tailwind، فيسهل تشذيبه لأن الأنماط تكون مع مكوّناتها وتُزال معها.
تدقيق قواعد الشيفرة القديمة
بالنسبة إلى ملفات CSS القديمة والكبيرة: استخدم UnCSS أو PurgeCSS أولًا في وضع report-only. رتّب القواعد حسب تكرار استخدامها. استخرج أنماط إضافات المورّد غير المستخدمة بوضوح واحذفها. اعمل تدريجيًا لتجنب إزالة الأنماط الخاصة بالحالات النادرة عن طريق الخطأ.
اختبار المعرفة
ما الذي تقيسه لوحة Coverage في Chrome DevTools؟
الملخص
يحدد تحليل تغطية CSS باستخدام DevTools Coverage وLighthouse القواعد غير المستخدمة. ويؤتمت PurgeCSS وTailwind JIT إزالة الشيفرة الميتة. كما يمنع CSS Modules وتقسيم CSS حسب المسار تراكم الأنماط غير المستخدمة. وتعمل هذه الأساليب معًا على تقليل حجم CSS ووقت تحليلها.
الأسئلة الشائعة
هل درس «تغطية CSS والأنماط غير المستخدمة» مجاني؟
نعم — نص درس «تغطية CSS والأنماط غير المستخدمة» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة CSS Academy، انتقل إلى CoddyKit PRO. تتضمن دورة CSS Academy 4 دروس في المجموع.
ماذا ستتعلم في «تغطية CSS والأنماط غير المستخدمة»؟
حدّد CSS غير المستخدم وأزله باستخدام لوحة Coverage في DevTools وأدوات tree-shaking مثل PurgeCSS. تتمرن على CSS Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ CSS Academy؟
لا تُشترط خبرة سابقة. CSS Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 4 من أصل 4.
كم من الوقت يستغرق درس «تغطية CSS والأنماط غير المستخدمة»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس CSS Academy هذا؟
نعم. كل درس في CSS Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- CSS الحرج وحجب العرض
- التخطيط والرسم والتركيب: مسار التصيير
- will-change وترقية الطبقات
- تغطية CSS والأنماط غير المستخدمة