محددات Extend وPlaceholder
شارك الأنماط بين المحددات باستخدام @extend ومحددات placeholder الصامتة.
محددات Extend وPlaceholder درس مجاني في CSS Academy على CoddyKit. هذا هو الدرس 3 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في CSS Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة CSS Academy 4 دروس في المجموع.
@extend في Sass
يتيح @extend لمحدد أن يرث جميع أنماط محدد آخر. وبدلًا من تكرار الشيفرة، ينشئ التمديد مجموعة قواعد مشتركة في CSS المجمّع.
<div class="error">Error message</div>
<div class="critical-error">Critical error message</div>
محددات Placeholder
يعرّف محدد placeholder، الذي تسبقه %، كتلةً من الأنماط لا تُجمّع بمفردها، بل فقط عند تمديدها. ولا ينتج أي CSS ما لم يمدده شيء.
<div class="product-card">Product card</div>
<div class="profile-card">Profile card</div>
لماذا نستخدم Placeholders بدلًا من الأصناف؟
يضيف تمديد صنف حقيقي سياق المحدد الكامل لذلك الصنف إلى الناتج المجمّع. أما Placeholders فهي أنظف، إذ تنتج محددات مجمّعة فقط للمحددات التي تمددها.
الناتج المجمّع لـ @extend
عندما تمدد عدة محددات placeholder نفسها، يجمعها Sass في قاعدة مفصولة بفواصل:
<div class="product-card">Product card</div>
<div class="profile-card">Profile card</div>
مشكلات @extend
لدى @extend قيود مهمة:
- لا يمكن استخدامه داخل الاستعلامات الوسائطية
- قد ينتج محددات مجمّعة كبيرة وغير متوقعة عند حدوث سلاسل من عمليات التمديد
- يجعل تتبع CSS المجمّع إلى الملفات المصدرية أكثر صعوبة
المفاضلة بين @extend وMixin
مقارنة:
@extend: CSS أصغر حجمًا بفضل القواعد المشتركة، لكنه يسبب سلاسل محددات معقدة وقيودًا داخل الاستعلامات الوسائطية@mixin: يكرر التصريحات، لكنه أكثر قابلية للتوقع ويمكن استخدامه داخل الاستعلامات الوسائطية
غالبًا ما يكون Mixin أفضل
في ممارسات Sass الحديثة، يُفضّل استخدام mixins عمومًا على @extend. تجعل HTTP/2 وضغط gzip تكرار التصريحات أقل أهمية، بينما تفوق سهولة تصحيح mixins الفرق المحدود في حجم CSS.
متى يكون @extend مناسبًا؟
يكون @extend، مع placeholders، مناسبًا عندما:
- تشترك عدة محددات فعلًا في الحالة الدلالية نفسها، مثل حالات الخطأ
- لا تكونون داخل استعلام وسائط
- تكون الأنماط الأساسية مستقرة ومحددة جيدًا
Placeholder وتخصيص السمة
تعمل Placeholders جيدًا مع مجموعات الأدوات المساعدة الشبيهة بإعادة الضبط، التي ترثها عدة مكوّنات:
<a href="#" class="skip-link">Skip to content</a>
<span class="sr-label">Screen reader label</span>
اعتبارات الإهمال
تحظر بعض أدلة الأنماط والفرق استخدام @extend بالكامل بسبب تعقيده وتضخم المحددات الذي قد يسببه. تعرّفوا على المفاضلات واتبعوا اصطلاحات فريقكم.
تحقق سريع
ما الفرق بين تمديد صنف عادي وتمديد محدد placeholder (%)؟
خلاصة
يتيح @extend لمحدد أن يرث أنماط محدد آخر، مع تجميع المحددات في CSS المجمّع. تُجمّع Placeholders (%name) إلى لا شيء حتى يتم تمديدها، وهي أنظف من تمديد الأصناف الحقيقية. تجنبوا استخدام @extend داخل الاستعلامات الوسائطية. وفي Sass الحديث، يُفضّل استخدام mixins عمومًا على @extend لأنها أكثر قابلية للتوقع وأسهل في التصحيح.
الأسئلة الشائعة
هل درس «محددات Extend وPlaceholder» مجاني؟
نعم — نص درس «محددات Extend وPlaceholder» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة CSS Academy، انتقل إلى CoddyKit PRO. تتضمن دورة CSS Academy 4 دروس في المجموع.
ماذا ستتعلم في «محددات Extend وPlaceholder»؟
شارك الأنماط بين المحددات باستخدام @extend ومحددات placeholder الصامتة. تتمرن على CSS Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ CSS Academy؟
لا تُشترط خبرة سابقة. CSS Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 3 من أصل 4.
كم من الوقت يستغرق درس «محددات Extend وPlaceholder»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس CSS Academy هذا؟
نعم. كل درس في CSS Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- المتغيرات والتداخل والملفات الجزئية
- Mixins وIncludes
- محددات Extend وPlaceholder
- دوال Sass وتدفق التحكم