الدرس 7 من 8

صنف CSS واحد

هدف الدرس

تعديل واحد بدل مئة وخمسين

01

الشرح

إذا غيّرت شكل خمسين بطاقة بـ card.style داخل حلقة، فأنت تكتب مئة وخمسين تعديلًا مع كل ضغطة، وتترك على كل بطاقة نمطًا مضمّنًا (inline style) لا تتغلّب عليه قواعد الـ CSS إلا بـ !important.

أمّا إضافة صنف واحد إلى الحاوية فتفعل الشيء نفسه بتعديل واحد، فيعيد المتصفح حساب الأنماط مرّة واحدة، ويبقى الشكل في الـ CSS حيث تستطيع الانتقالات والاستعلامات والوضع الداكن أن تعمل عليه.

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

02

المطلوب

انقل الأنماط إلى القاعدة #list.compact .card، واجعل الزرّ #compact يضيف الصنف compact إلى #list وحدها ويزيله عنها دون أن يلمس البطاقات، ويحدّث aria-pressed.

الفحوص

5 فحوص
  1. الضغط يعدّل القائمة وحدها وليس البطاقات
  2. كل ضغطة تضيف الصنف compact إلى القائمة أو تزيله
  3. الصنف يصغّر حشوة البطاقات عن طريق الـ CSS
  4. البطاقات ليس عليها أنماط مضمّنة
  5. السمة aria-pressed تتبع الحالة
03

تلميحات

0/3
دروس المسارأتممت 0 من 8

تعرف في هذا المسار أين يضيع الوقت فعلًا في صفحتك، وكيف توفّره بإضافة العناصر مرّة واحدة وتقليل الاستدعاءات وعدم تكرار الحساب.

مستواه متقدّم، وفيه 8 دروس مجموع مدّتها ساعة ونصف.

index.html
المعاينة
index.html100%
–/5

اضغط «تشغيل وتصحيح» ليبدأ الفحص.

تجد 5 فحوص في بطاقة «المطلوب».

دروس المسارأتممت 0 من 8

تعرف في هذا المسار أين يضيع الوقت فعلًا في صفحتك، وكيف توفّره بإضافة العناصر مرّة واحدة وتقليل الاستدعاءات وعدم تكرار الحساب.

مستواه متقدّم، وفيه 8 دروس مجموع مدّتها ساعة ونصف.