طَبِّقْهاتعلّم المبدأ، وطبّقه بيدكمقرر 131 · تقنيات تطوير الواجهات الأمامية
الدرس 15 · الوحدة 5: التعرف على CSS

المحددات

نتعلم كيف نختار العنصر الذي نريد تنسيقه بدقة. ⏱ نحو 25 دقيقة.

.special#topكل محدِّد يختار عناصر معيّنة
بعد هذا الدرس ستستطيع أن:
  • تختار العناصر بالوسم والصنف والمعرّف.
  • تجمع المحددات بالفاصلة، وتختار العنصر داخل عنصر.
  • تستخدم الحالات مثل :hover.
  • تعرف أي المحددات أقوى عند التعارض.

١ثلاثة محددات أساسية

المحدِّد يجيب عن سؤال: أي العناصر نريد تنسيقها؟

<h1 id="title">قائمة بُنّ</h1><p>قهوة عربية <span class="price">8 ريال</span></p><p class="special">قهوة اليوم <span class="price">12 ريال</span></p><p>شاي <span class="price">5 ريال</span></p>
index.html
المحدِّديكتبيختارفي HTML
الوسمpكل عناصر هذا الوسم.—
الصنف.priceكل عنصر له هذا الصنف. يتكرر في الصفحة.class="price"
المعرّف#titleعنصرًا واحدًا فقط. لا يتكرر.id="title"

انتبه: النقطة . للصنف، وعلامة # للمعرّف، في CSS فقط. أما في HTML فنكتب الاسم بلا علامة.

٢أكثر من صنف، وتجميع المحددات

<button class="btn">إلغاء</button><button class="btn primary">احجز</button><h2>عنوان</h2><h3>عنوان فرعي</h3>
index.html

٣العنصر داخل العنصر

المسافة بين محدِّدين تعني «داخل». nav a تختار الروابط التي داخل nav فقط:

<nav>  <a href="#">الرئيسية</a>  <a href="#">القائمة</a></nav><p>اقرأ <a href="#">الشروط</a>.</p>
index.html

٤حالات العنصر: hover وغيرها

بعد النقطتين نكتب حالة العنصر. أشهرها :hover: حين يمر مؤشر الفأرة فوقه:

<button>مرّر الفأرة فوقي</button><ul>  <li>الأول</li>  <li>الثاني</li>  <li>الثالث</li></ul>
index.html
الحالةمتى؟
:hoverالمؤشر فوق العنصر.
:focusالعنصر نشط للكتابة (حقل إدخال).
:first-childأول عنصر بين إخوته.
:nth-child(2)العنصر الثاني.

٥من الأقوى؟

إذا اختار محددان العنصر نفسه بقيمتين مختلفتين، يفوز الأدق:

<p id="note" class="info">ما لوني؟</p>
index.html

الترتيب من الأقوى: المعرّف #id ثم الصنف .class ثم الوسم p. وعند التساوي يفوز المكتوب أخيرًا. لذلك ظهر النص أخضر رغم أن قاعدة p مكتوبة آخرًا.

نصيحة عملية: نسّق بالأصناف في أغلب الأحوال؛ فهي قابلة للتكرار، وقوتها متوسطة فلا تصعّب التعديل لاحقًا.

توقّع وتحقّق

أي محدِّد يختار كل العناصر ذات الصنف card؟

النقطة للصنف.

عنصر واحد فريد في الصفحة نختاره بـ:

المعرّف لا يتكرر.

ماذا يختار المحدِّد footer p؟

المسافة تعني «داخل».

عنصر له id و class بلونين مختلفين، أيهما يفوز؟

المعرّف أقوى.

الخلاصة

تحدٍّ برمجي: قائمة الأسعار

متوسط

نسّق قائمة أسعار المقهى في تبويب style.css باستخدام المحددات المناسبة. لا تعدّل index.html.

المطلوب:
  • كل الأسعار (الصنف price) بلون أخضر #2E8B3A.
  • العنصر المميز (المعرّف best) بخلفية #FFF3CD.
  • الروابط داخل nav فقط بلون أبيض وخلفية #3B2A1A.
  • عند مرور الفأرة على زر الطلب (الصنف order) تصبح خلفيته #E07A1F.
👀 اعرض شكل الناتج المطلوب
الناتج المطلوب
✓ التحقق الآلي من حلّك:
  • كل الأسعار خضراء #2E8B3A.
  • خلفية #best هي #FFF3CD.
  • روابط nav بيضاء بخلفية #3B2A1A.
  • رابط الشروط خارج nav لم يتغيّر.
  • قاعدة hover لزر الطلب بخلفية #E07A1F.

💡 تلميح 1
الصنف بنقطة: .price، والمعرّف بعلامة #: #best.
💡 تلميح 2
الحالة: .order:hover { … }

حاول بنفسك أولًا؛ للمسألة أكثر من حلّ صحيح.

<nav>  <a href="#">الرئيسية</a>  <a href="#">القائمة</a></nav><h1>الأسعار</h1><p>قهوة عربية <span class="price">8</span></p><p id="best">قهوة اليوم <span class="price">12</span></p><p>شاي <span class="price">5</span></p><p>اقرأ <a href="#">الشروط</a></p><button class="order">اطلب</button>
انتقل إلى تقييم الدرساختيار من متعدد، وصح وخطأ، وأكمل الفراغ، وتتبّع الناتج.ابدأ التقييم ←