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

مكونات Bootstrap والمشروع الختامي

نسرّع العمل بمكتبة جاهزة، ونجمع كل ما تعلمناه في المشروع الختامي. ⏱ نحو 30 دقيقة.

Bootstrapcontainer · row · col-md-4 · card · btn
بعد هذا الدرس ستستطيع أن:
  • تربط Bootstrap بنسخة rtl وتستخدم أصنافه.
  • تبني شبكة متجاوبة بـ container و row و col.
  • تستخدم المكونات الجاهزة: الأزرار والبطاقات وشريط التنقل.
  • تخطط لمشروعك الختامي ودراسة الحالة.

١مكتبة قطع جاهزة

كتبت بنفسك CSS للأزرار والبطاقات والشبكات. في المشاريع الكبيرة يستخدم المطوّرون غالبًا مكتبة جاهزة فيها هذه القطع، وأشهرها Bootstrap. تربطها بسطر واحد، ثم تكتب أسماء أصنافها في HTML:

<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.rtl.min.css"><div class="container py-3">  <h1 class="text-primary">مقهى بُنّ</h1>  <button class="btn btn-primary">اطلب الآن</button>  <button class="btn btn-outline-secondary">القائمة</button>  <div class="alert alert-success mt-3">تم حفظ طلبك ✓</div></div>
index.html

لم نكتب سطر CSS واحدًا! الأصناف btn و btn-primary و alert جاهزة في الملف الذي ربطناه. ولاحظ bootstrap.rtl.min.css: نسخة مخصصة للصفحات العربية.

٢الشبكة: 12 عمودًا مرة أخرى

تذكر شبكة الـ 12 عمودًا من الدرس 6؟ هي قلب Bootstrap:

<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.rtl.min.css"><div class="container">  <div class="row g-2">    <div class="col-12 col-md-4"><div class="p-3 bg-primary-subtle">بايثون</div></div>    <div class="col-12 col-md-4"><div class="p-3 bg-success-subtle">الويب</div></div>    <div class="col-12 col-md-4"><div class="p-3 bg-warning-subtle">قواعد البيانات</div></div>  </div></div>
index.html
الصنفمعناه
containerحاوية بعرض مناسب في الوسط.
rowصف (فيه display: flex).
col-1212 عمودًا = العرض كله، في الجوال.
col-md-4من الشاشة المتوسطة (768) فأكثر: 4 أعمدة، أي ثلاث بطاقات في صف.

هذا التصميم المتجاوب من الدرس 21 كله، لكن بالأصناف بدل @media. جرّب «✏️ جرّب وعدّل» ثم زر 📱.

٣مكونات جاهزة

<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.rtl.min.css"><nav class="navbar navbar-dark bg-dark px-3">  <a class="navbar-brand" href="#">بُنّ</a>  <span class="badge bg-warning text-dark">جديد</span></nav> <div class="container mt-3">  <div class="card" style="max-width: 18rem">    <img src="images/coffee.svg" class="card-img-top" alt="قهوة">    <div class="card-body">      <h5 class="card-title">قهوة مختصة</h5>      <p class="card-text">تُحمَّص كل صباح.</p>      <a href="#" class="btn btn-primary">أضف للسلة</a>    </div>  </div></div>
index.html

المكونات التفاعلية مثل القائمة التي تُطوى في الجوال، والنافذة المنبثقة Modal، تحتاج ملف JavaScript من Bootstrap أيضًا، نضعه قبل نهاية body:

<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/js/bootstrap.bundle.min.js"></script>

انسخ الأمثلة من موقع getbootstrap.com (قسم Components)، ثم عدّل النصوص والألوان. القراءة من التوثيق مهارة أساسية لكل مطوّر.

٤متى أستخدم مكتبة؟

CSS بنفسكBootstrap
السرعةأبطأ في البداية.سريع جدًّا: قطع جاهزة.
الشكلفريد بهويتك.يشبه مواقع كثيرة ما لم تخصّصه.
الفهمتفهم كل سطر.تحتاج فهم CSS لتعدّل عليه.
الحجمصغير.ملف إضافي كبير نسبيًّا.

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

٥المشروع الختامي

حسب خطة المقرر، تسلّم في آخر الفصل ثلاثة أعمال تجمع كل ما تعلمته:

العملالمطلوبمن أين تبدأ؟
1. دراسة حالةتحليل واجهة موقع مشهور: الهوية، والتجربة، ومبادئ UX، ونقاط القوة والضعف، ومقترحات تحسين.تحدي الدرس 1 (حلّل واجهة موقع).
2. تصميم الواجهةمخطط هيكلي ونموذج مرئي في Figma لصفحة رئيسية وصفحة داخلية، للجوال والحاسوب.تحديات الدروس 2 إلى 6.
3. بناء الواجهةصفحتان على الأقل بـ HTML و CSS و JavaScript، متجاوبتان، فيهما نموذج بتحقق، وتفاعل واحد على الأقل. يمكن استخدام Bootstrap.تحديات الدروس 7 إلى 29.

قائمة التحقق قبل التسليم

توقّع وتحقّق

ما Bootstrap؟

أصناف جاهزة.

ثلاث بطاقات متساوية في صف على الحاسوب:

12 ÷ 3 = 4.

نسخة Bootstrap للصفحات العربية:

rtl.

زر أزرق أساسي في Bootstrap:

btn ثم نوعه.

الخلاصة

تحدٍّ برمجي: صفحة مركز التدريب بـ Bootstrap

متقدم

ابنِ الصفحة الرئيسية لمركز التدريب بأصناف Bootstrap فقط (الرابط جاهز في الكود). تحتاج اتصالًا بالإنترنت لتحميل المكتبة.

المطلوب:
  • شريط تنقل navbar.
  • حاوية container فيها عنوان h1.
  • صف row فيه ثلاثة أعمدة col-md-4.
  • في كل عمود بطاقة card لدورة (card-body و card-title).
  • زر btn btn-primary واحد على الأقل.
👀 اعرض شكل الناتج المطلوب
الناتج المطلوب
✓ التحقق الآلي من حلّك:
  • رابط Bootstrap موجود.
  • شريط تنقل navbar.
  • container فيه h1.
  • row فيه ثلاثة أعمدة col-md-4.
  • كل عمود فيه card بـ card-body و card-title.
  • زر btn btn-primary.

💡 تلميح 1
الأعمدة داخل الصف: <div class="row"> ثم ثلاثة <div class="col-md-4">
💡 تلميح 2
البطاقة: card ثم card-body ثم card-title

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

<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.rtl.min.css"> <nav class="navbar navbar-dark bg-dark px-3">  <a class="navbar-brand" href="#">مركز المبرمج</a></nav> <div class="container py-3">  <h1>دوراتنا</h1>  <div class="row g-3">    <div class="col-md-4">      <div class="card"><div class="card-body"><h5 class="card-title">بايثون</h5><a href="#" class="btn btn-primary">سجّل</a></div></div>    </div>    <div class="col-md-4">      <div class="card"><div class="card-body"><h5 class="card-title">تطوير الويب</h5><a href="#" class="btn btn-primary">سجّل</a></div></div>    </div>    <div class="col-md-4">      <div class="card"><div class="card-body"><h5 class="card-title">قواعد البيانات</h5><a href="#" class="btn btn-primary">سجّل</a></div></div>    </div>  </div></div>
انتقل إلى تقييم الدرساختيار من متعدد، وصح وخطأ، وأكمل الفراغ، وتتبّع الناتج.ابدأ التقييم ←

📝 معلم؟ أرسل ملاحظة للمؤلف عن هذا الدرس