x

أولوية CSS ، وخوارزمية التتابع (Cascade) ، والوراثة (Inheritance)

ما هي الكلمة المفتاحية المهمة (important Keyword) ، وما هي أفضل الممارسات لاستخدامها؟

نظري

تُستخدم الكلمة المفتاحية (!important keyword) في CSS لمنح قاعدة تنسيقٍ ما أعلى درجات الأولوية، مما يتيح لها تجاوز أي إعلانات (declarations) أخرى خاصة بخاصية معينة.

عند استخدامه، فإنه يُجبر المتصفح على تطبيق النمط (style) المحدد، بغض النظر عن درجة خصوصية (specificity) المُحدِّدات الأخرى (other selectors).

لنفترض أن لديك عنصر فقرة HTML بتنسيقات مضمنة (inline styles) كهذا:


<p class="para" style="background-color: lightblue; color: black;">
 هذه فقرة.
</p>
        

معاينة:

في هذا المثال، تم ضبط لون خلفية (background color) عنصر الفقرة على الأزرق الفاتح lightblue ، ولون النص (text color) على الأسود black.

يطبّق ملف CSS الأنماط التالية على عنصر الفقرة:

index.html


<link rel="stylesheet" href="styles.css">

<p class="para" style="background-color: lightblue; color: black;">
 هذه فقرة.
</p>
        

styles.css


.para  {
  background-color: black;
  color: white;
}
        

معاينة:

بما أن الأنماط المضمنة (inline styles) تتمتع بأولوية أعلى من محددات الفئة (class) والمُعرِّف (ID) والنوع (type)، فلن يتم تطبيق لون الخلفية الأسود (black background color) ولون النص الأبيض (white text color) على عنصر الفقرة ذاك.

لتجاوز تلك الأنماط المضمنة (inline styles)، يمكنك استخدام الكلمة المفتاحية (!important keyword) على النحو التالي:

index.html


<link rel="stylesheet" href="styles.css">

<p class="para" style="background-color: lightblue; color: black;">
 هذه فقرة.
</p>
        

styles.css


.para  {
  background-color: black !important;
  color: white !important;
}
        

معاينة:

تُستخدم الكلمة المفتاحية (!important keyword) بعد قيمة CSS وقبل الفاصلة المنقوطة (semicolon).

الآن، سيتم تطبيق اللونين الأسود والأبيض على عنصر الفقرة؛ وذلك لأن الأنماط المضمنة (inline styles) قد تم تجاوزها باستخدام الكلمة المفتاحية !important.

تُستخدم الكلمة المفتاحية !important في CSS لمنح قاعدة التنسيق أعلى درجات الأولوية، مما يؤدي فعلياً إلى تجاوز الإعلانات الأخرى، بما في ذلك تلك التي تتمتع بخصوصية (specificity) أعلى أو التنسيقات المضمنة (inline styles).

ومع ذلك، فإن الكلمة المفتاحية !important لا تُغيِّر من "خصوصية" (specificity) مُحدِّد CSS نفسه؛ فهي تضمن ببساطة تطبيق القاعدة التي تتضمن !important حتى في حال وجود قواعد أخرى متعارضة ذات خصوصية أعلى.

من حالات الاستخدام المناسبة الأخرى للكلمة المفتاحية !important هي تجاوز الأنماط (styles) القادمة من مكتبات (libraries) أو أطر عمل (frameworks) خارجية، وذلك عندما لا تملك صلاحية التحكم في ملفات CSS الأصلية.

ومع ذلك، فإن الإفراط في استخدام الكلمة المفتاحية !important يمكن أن يؤدي إلى صعوبات في صيانة وتصحيح أخطاء CSS الخاص بك، لأنه يكسر التتالي الطبيعي للأنماط (natural cascading of styles) ويمكن أن يؤدي إلى عواقب غير مقصودة (unintended consequences).

لذا، من الأفضل استخدام الكلمة المفتاحية !important باعتدال.

أسئلة :

ما هي وظيفة الكلمة المفتاحية !important في CSS؟

1. يُزيد من قيمة التحديد (specificity) للمُحدِّد (selector). ❌

2. يُطبِّق النمط (style) بغض النظر عن قيمة التحديد الخاصة بالقواعد الأخرى. ✅

3. يُقلل من قيمة التحديد (specificity value) للمُحدِّد. ❌

4. يتجاوز الأنماط المضمنة (inline styles) فقط. ❌


متى ينبغي استخدام الكلمة المفتاحية !important ؟

1. باعتبارها الطريقة الأساسية لتنسيق العناصر. ❌

2. لتجاوز تنسيقات الجهات الخارجية (third-party) أو كحل مؤقت. ✅

3. في كل قاعدة CSS لضمان الاتساق. ❌

4. لزيادة مستوى التحديد (Specificity). ❌


بناءً على كود CSS التالي، ما هو لون النص؟


<head>
 <style>
  p {
   color: blue;
  }
  .highlight {
   color: green !important;
  }
  #unique {
   color: purple;
  }
 </style>
</head>
<body>
 <p id="unique" class="highlight">هذا النص</p>
</body>
            

1. أزرق blue. ❌

2. أخضر green. ✅

3. أرجواني purple. ❌

4. أحمر red. ❌