قسّم ملفات CSS الخاصة بك إلى ملفات متعلقة بـ ‎@media‎ لتحسين الأداء بشكل كبير

مصنف كـ Core Web Vitals، CSS، HTML، Web، Web Performance
Save and Share:

عند تجميع CSS في ملف واحد، حتى بعد عملية الـ tree-shaking، فإنه لا يزال يحتوي على الكثير من CSS غير المستخدم بسبب سياقات ‎@media‎ المختلفة (الهاتف المحمول، الجهاز اللوحي، سطح المكتب، الثيمات الداكنة/الفاتحة/أخرى، إلخ).

هذا سيء لمقاييس Core Web Vitals: تأخير الإدخال الأول (FID)، أكبر محتوى مرئي (LCP)، تغيير التخطيط التراكمي (CLS)، بالإضافة إلى مقاييس الأداء وقابلية الاستخدام الحيوية الأخرى: أول محتوى مرئي (FCP)، إجمالي وقت الحظر (TBT)، وقت التفاعل (TTI)، وحدث DOMContentLoaded.

توجد طريقة لتحسين تحميل وعرض CSS بشكل كبير عن طريق فصل CSS إلى ملفات مختلفة، حيث يحتوي كل ملف فقط على الكود المطلوب في ذلك السياق.

قسّم ملفات CSS الخاصة بك إلى ملفات مختلفة:

📄main.css        - يحتوي على CSS اللازم لجميع شروط ‎@media‎
📄screen.css      - يحتوي على CSS اللازم فقط لشرط ‎@media‎ الشاشة
📄print.css       - يحتوي على CSS اللازم فقط لشرط ‎@media‎ الطباعة
📂breakpoints
    📄x-small.css - يحتوي على CSS اللازم فقط لنقطة توقف X-Small
    📄sm.css      - يحتوي على CSS اللازم فقط لنقطة توقف Small
    📄md.css      - يحتوي على CSS اللازم فقط لنقطة توقف Medium
    📄lg.css      - يحتوي على CSS اللازم فقط لنقطة توقف Large
    📄xl.css      - يحتوي على CSS اللازم فقط لنقطة توقف Extra large
    📄xxl.css     - يحتوي على CSS اللازم فقط لنقطة توقف Extra extra large
📂themes
    📄light.css   - يحتوي على CSS اللازم فقط للثيم الفاتح
    📄dark.css    - يحتوي على CSS اللازم فقط للثيم الداكن

ثم، قم بتضمين ملفات CSS هكذا:

<link rel="stylesheet" href="main.css" media="all">
<link rel="stylesheet" href="screen.css" media="screen">
<link rel="stylesheet" href="print.css" media="print">
<link rel="stylesheet" href="x-small.css" media="(max-width: 575px)">
<link rel="stylesheet" href="sm.css" media="(min-width: 576px)">
<link rel="stylesheet" href="md.css" media="(min-width: 768px)">
<link rel="stylesheet" href="lg.css" media="(min-width: 992px)">
<link rel="stylesheet" href="xl.css" media="(min-width: 1200px)">
<link rel="stylesheet" href="xxl.css" media="(min-width: 1400px)">
<link rel="stylesheet" href="light.css" media="(prefers-color-scheme: light)">
<link rel="stylesheet" href="dark.css" media="(prefers-color-scheme: dark)">

باستخدام هذا النهج، تعطي المتصفحات الحديثة الأولوية لتحميل CSS لشروط ‎@media‎ الحالية، لذلك يبدأ عرض الصفحة بشكل أسرع بكثير لأن المستخدمين لا يحتاجون إلى الانتظار لتحميل الجزء غير المستخدم من CSS.
في الحالات التي لديك فيها كل CSS مجمعة في ملف واحد ولا تحدد شروطًا في سمات الوسائط لعلامات link، ينتظر المتصفح تحميل المجموعة الكاملة من CSS قبل البدء في عرض الصفحة. مما يبطئ عرض الصفحة بشكل كبير.

تعتمد نقاط التوقف في هذا المثال على Bootstrap 5. سيصبح هذا النهج أكثر أهمية بالنسبة لـ Bootstrap قريبًا نظرًا لأنهم سيضيفون دعمًا للثيمات الفاتحة/الداكنة/الأخرى.

إذا كنت ترغب في جعل الويب أفضل وأسرع، يرجى:

  • مشاركة هذا المقال،
  • إرسال هذا المقال إلى مطوري الأطر التي تستخدمها،
  • تطبيق فصل CSS هذا على مواقعك.

شارك على وسائل التواصل الاجتماعي أو احفظه لوقت لاحق:

إذا كنت ترغب في قراءة المزيد عن هذا التحسين وسلوك المتصفح، يرجى الاطلاع على ما يلي:

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *