أساسيات CSS

التخصيص في CSS

عندما تتعارض القواعد

تقديم

كتب هذا المقال أشرف عبدالدايم مطور واجهة المستخدم في TieLabs سابقاً، 95% من كود CSS الموجود في قالب جنة من كتابة أشرف :)

يمكنك تحديد عناصر html بأكثر من طريقة بإستخدام CSS، هذة الطرق هي المحدادات المختلفة، فإذا كان لديك العنصر التالي:

يمكنك تحديد هذا العنصر بأيٍ من الطرق الآتية:
١- باستخدام نوع العنصر

٢- بإستخدام الخاصية كلاس

٣- باستخدام الخاصية id

لان المتصفح في النهاية سيقوم بتطبيق لون واحد فقط للفقرة النصية بالأعلى، فلابد أن يقوم بإختيار لون واحد من الألوان الثلاثة، جميع القواعد الثلاثة بالأعلى تشير إلى نفس العنصر،ما اللون الذي ستظهر به الفقرة النصية؟! من أجل هذا كان مصطلح التخصيص Specificity.

ذكرنا من قبل أن الخاصية id قيمتها لا تتكر في الصفحة الإ مرةً واحدةً فقط، ,وعلى هذا سيقوم المحدد id بتحديد عنصر واحد فقط في الصفحة، لذلك فهو الأكثر تخصيصاً، وسيكون لون الفقرة النصية باللون الأحمر.

المحدد بإستخدام الخاصية id هو الأكثر تخصيصاً على الإطلاق إلا في حالة واحدة، هي استخدام الكلمة المفتاحية important مسبوقة بعلامة تعجب ! بعد قيمة الخاصية مباشرةً:

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

في هذة الحالة سيتم تطبيق القيمة التي لديها الكلمة المفتاحية important! فقط، وباقي الإعلانات داخل القاعدة rule سيتم تجاوزها من خلال المحدد الأكثر تخصيصاً:

فسيكون لون الفقرة النصية أخضر (لاستخدام الكلمة المفتاحية important! ) وسيكون حجم الخط 14px  لوجوده داخل المحدد الأكثر تخصيصاً intro-text# .

ترتيب القواعد في ملف الـ CSS

إذا تشابهت المحددات في ملف CSS سيتم تطبيق المحدد الأخير:

سيتم تطبيق القاعدة الأخيرة، لذلك سيكون لون الفقرة النصية باللون الأحمر.

توضيخ آخر عن المحددات

إلى الآن لم نتعرض الإ للمحددات البسيطة بشكل عام، في المقالات اللاحقة إن شاء الله سنتحدث عن المحددات الأكثر تركيباً Complex Selector، لكن حتى لا يختلط الأمر بالنسبة لتخصيص المحددات، دعنا نطبق طريقة النسبة المئوية على تخصيص المحددات، على حسب قوة التخصيص ستزيد النسبة المئوية:

  • استخدام الكلمة المفتاحية important! بعد القيمة : ١٠١٪
  • المحدد بإستخدام الخاصية id : ١٠٠٪
  • المحدد بإستخدام الخاصية class : ١٠٪
  • المحدد بإستخدام نوع العنصر : ١٪

المحدد الأعلى في النسبة المئوية سيتم تطبيقة بغض النظر عن ترتيب الأكواد في ملف الـ CSS:

See the Pen TieLabs HTML & CSS Tutorials | 5.6 CSS Priority | example #1 by Ashraf Reda (@mo3aser) on CodePen.33721

القاعدة

المحدد id سيقوم بتحديد عنصر واحد في الصفحة كلها، لذلك فهو الأكثر تخصيصاً، والقاعدة

تقوم بتحديد العناصر التي تحتوي على الخاصية كلاس ذات القيمة message  لذلك فهي أقل تخصيصاً من المحدد id ، والقاعدة

تقوم بتحديد جميع عناصر الفقرات النصية في الصفحة كلها. لذلك فهي أقل المحددات تخصيصاً.

كيف يمكنك تجنب التعارضات في ملف CSS

لان المحددات متنوعة ويمكن لأكثر من محدد تحديد نفس العنصر، لذلك من السهل حدوث التعارضات بين قواعد CSS، لكن كيف تتجنب هذة التعارضات:

  1. استخدم دائما الخاصية class بدلاً من الخاصية id ،حتى لو لم يتكرر العنصر في الصفحة الإ مرةً واحدة.
  2. تجنب استخدام الكثير من الكلاسات classes للعنصر الواحد مثل:
    بدلاً من ذلك استخدم قيمة واحدة معبرة عن العنصر:
  3. تجنب استخدام أكواد CSS بشكل ضمني في عناصر HTML يبيب :
  4. تجنب استخدام الكلمة المفتاحية important!  الإ للضرورة القصوى.
  5. تجنب استخدم الكثير من العناصر المختلفة في أكواد html، قم بتوحيد العناصر التي تقوم بنفس الوظيفة وإن اختلف شكلها.

أشرف عبدالدايم

مصري، أب، مطور واجهة المستخدم في TieLabs سابقاً، أحب كتابة المقالات التعليمة وأشعر أنها واجب على كل المهتمين بالمجال، حتى يتم توفير محتوى عربي لائق يساهم بشكل فعال في بناء جيل من المطورين والمبرمجين والمصميمن تعلّم بطريقة صحيحة منذ بداية رحلته التعليمية.
زر الذهاب إلى الأعلى
إغلاق