0Pricing
CSS Academy · درس

أولوية الطبقات وتفاعل !important

افهم كيف يحدد ترتيب الطبقات الأولوية، وكيف يتفاعل !important مع الطبقات بطريقة عكسية.

أولوية الطبقات وتفاعل !important درس مجاني في CSS Academy على CoddyKit. هذا هو الدرس 3 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في CSS Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة CSS Academy 4 دروس في المجموع.

التصريحات العادية في الطبقات

بالنسبة إلى التصريحات العادية (غير المحتوية على !important)، تكون أولوية التتالي كما يلي:

  1. الأنماط غير الموجودة ضمن طبقة (الأعلى)
  2. الطبقة المعلنة أخيرًا
  3. الطبقات الأسبق (الأدنى)

!important في الطبقات — الانعكاس

بالنسبة إلى التصريحات التي تحتوي على !important، ينعكس ترتيب الأولوية:

  1. !important في الأنماط غير الموجودة ضمن طبقة (الأدنى ضمن مستوى !important)
  2. !important في أول طبقة معلنة (الأعلى)
  3. !important في الطبقات اللاحقة (أدنى)

سبب الانعكاس؟

يعكس هذا الانعكاس طريقة عمل تصريحات المستخدم والمؤلف التي تستخدم !important في نظام التتالي الأصلي. تتغلب تصريحات المستخدم التي تستخدم !important على تصريحات المؤلف التي تستخدم !important لحماية تفضيلات إمكانية الوصول، ويمتد المنطق نفسه إلى الطبقات. تكون للطبقات الأسبق (الأكثر أساسية) الأولوية عند استخدام !important.

مثال عملي

توضيح لأولوية التصريحات العادية مقارنةً بتصريحات !important:

<p>Plain paragraph (reset layer's green !important wins over any non-important rule)</p>
<p class="text">Paragraph with class="text" — matches .text (blue) and p.text (red !important), but reset's green !important still wins (earlier layer wins the !important tier)</p>

متى تُستخدم !important في الطبقات

الاستخدامات المقبولة ضمن الطبقات:

  • طبقة إعادة الضبط والتطبيع: استخدام !important لمنع أي مكوّن من تجاوز عمليات إعادة الضبط الأساسية
  • أدوات إمكانية الوصول: استخدام display: none !important لأدوات الإخفاء
  • إعادة ضبط الحركة المخفّضة: استخدام animation: none !important

تجنب !important في طبقات المكوّنات

لا تستخدموا !important مطلقًا في طبقات المكوّنات. فهذا يتعارض مع الغرض من الطبقات وينشئ مشكلات أولوية يصعب تصحيحها. استخدموا ترتيب الطبقات بدلًا من ذلك لضمان تفوق الأدوات.

!important غير الموجودة ضمن طبقة مقابل !important الموجودة ضمن طبقة

تتمتع !important غير الموجودة ضمن طبقة بأدنى أولوية ضمن مستوى !important. وهذا يعني أن !important الموجودة في طبقة إعادة الضبط تتغلب على !important غير الموجودة ضمن طبقة، وهي نتيجة غير بديهية.

<p style="border:1px dashed #999;">This paragraph gets margin: 0 — the layered reset's !important beats the unlayered !important below it.</p>

التفاعل بين طبقات التتالي ومصدر التصريح

ضمن مصدر المؤلف، ترتب الطبقات التصريحات. لكن !important الخاصة بوكيل المستخدم و!important الخاصة بالمستخدم تظل أعلى من جميع تصريحات مصدر المؤلف، سواء احتوت على !important أم لا. يظل ترتيب التتالي الكامل كما يلي:

  1. !important الخاصة بوكيل المستخدم
  2. !important الخاصة بالمستخدم
  3. !important الخاصة بالمؤلف (بحسب ترتيب الطبقات: الطبقة الأولى لها الأولوية)
  4. التصريحات العادية الخاصة بالمؤلف (بحسب ترتيب الطبقات: الطبقة الأخيرة لها الأولوية)
  5. التصريحات العادية الخاصة بالمستخدم
  6. التصريحات العادية الخاصة بوكيل المستخدم

اختبار أولوية الطبقات

للتحقق من أولوية الطبقات في مشروعكم، اكتبوا عمدًا قواعد متعارضة في طبقات مختلفة، ثم تحققوا من القاعدة التي لها الأولوية في أدوات المطور. تعرض لوحة Styles الطبقة التي جاءت منها القاعدة الفائزة.

أدوات @layer وخصوصية CSS

بعد اعتماد @layer، تصبح الخصوصية أقل أهمية في معظم CSS الخاص بالمكوّنات. يمكنكم كتابة محددات أبسط وأقل خصوصية، والاعتماد على ترتيب الطبقات لتحديد الأولوية، مما يقلل صراعات الخصوصية بدرجة كبيرة.

تحقق سريع

تم تعريف الطبقات بالترتيب @layer reset, components, utilities. توجد إحدى تصريحات !important في طبقة reset وأخرى في طبقة utilities. أيهما لها الأولوية؟

مراجعة

بالنسبة إلى التصريحات العادية: تكون للطبقة اللاحقة الأولوية. وبالنسبة إلى !important: تكون للطبقة الأولى الأولوية. تتمتع !important غير الموجودة ضمن طبقة بأدنى أولوية ضمن مستوى !important. استخدموا !important فقط في طبقات إعادة الضبط وإمكانية الوصول. ومع استخدام الطبقات، يمكنكم كتابة محددات أبسط وترك ترتيب الطبقات يتولى تحديد الأولوية بدلًا من الخصوصية.

الأسئلة الشائعة

هل درس «أولوية الطبقات وتفاعل !important» مجاني؟

نعم — نص درس «أولوية الطبقات وتفاعل !important» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة CSS Academy، انتقل إلى CoddyKit PRO. تتضمن دورة CSS Academy 4 دروس في المجموع.

ماذا ستتعلم في «أولوية الطبقات وتفاعل !important»؟

افهم كيف يحدد ترتيب الطبقات الأولوية، وكيف يتفاعل !important مع الطبقات بطريقة عكسية. تتمرن على CSS Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ CSS Academy؟

لا تُشترط خبرة سابقة. CSS Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 3 من أصل 4.

كم من الوقت يستغرق درس «أولوية الطبقات وتفاعل !important»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس CSS Academy هذا؟

نعم. كل درس في CSS Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. تصريح @layer وترتيبه
  2. إضافة الأنماط إلى الطبقات
  3. أولوية الطبقات وتفاعل !important
  4. الطبقات في تعليمات برمجية من جهات خارجية
← العودة إلى CSS Academy