إطار Bootstrap 5

مكونات تخطيط Bootstrap

13 دقيقة الدرس 9 من 40

مكونات تخطيط Bootstrap

بالإضافة إلى نظام الشبكة، يوفر Bootstrap مكونات تخطيط قوية تساعد في هيكلة صفحات كاملة. دعنا نستكشف الحاويات، ونقاط التوقف في الممارسة، وطبقات z-index، وأفضل ممارسات التخطيط.

1. أنواع الحاويات

الحاويات هي أساس تخطيطات Bootstrap. اختر الحاوية المناسبة لاحتياجاتك:

<!-- حاوية ذات عرض ثابت (نقاط توقف متجاوبة) --> <div class="container"> <!-- يتغير العرض عند نقاط التوقف: sm (540px)، md (720px)، lg (960px)، xl (1140px)، xxl (1320px) --> <p>حاوية متجاوبة ذات عرض ثابت</p> </div> <!-- حاوية بعرض كامل --> <div class="container-fluid"> <!-- دائمًا بعرض 100% في جميع نقاط التوقف --> <p>حاوية سائلة بعرض كامل</p> </div> <!-- حاويات متجاوبة (100% حتى نقطة التوقف) --> <div class="container-sm">بعرض 100% حتى نقطة توقف sm (576px)</div> <div class="container-md">بعرض 100% حتى نقطة توقف md (768px)</div> <div class="container-lg">بعرض 100% حتى نقطة توقف lg (992px)</div> <div class="container-xl">بعرض 100% حتى نقطة توقف xl (1200px)</div> <div class="container-xxl">بعرض 100% حتى نقطة توقف xxl (1400px)</div> <!-- مثال عملي: دمج الحاويات --> <!-- رأس بعرض كامل --> <header class="bg-dark text-white"> <div class="container"> <nav class="navbar"> <span class="navbar-brand">موقعي</span> </nav> </div> </header> <!-- بطل بعرض كامل مع محتوى متوسط --> <section class="bg-primary text-white py-5"> <div class="container"> <h1 class="display-3">مرحبًا</h1> <p class="lead">محتوى قسم البطل</p> </div> </section> <!-- منطقة المحتوى القياسية --> <main class="container my-5"> <div class="row"> <div class="col-lg-8"> <article>المحتوى الرئيسي</article> </div> <div class="col-lg-4"> <aside>الشريط الجانبي</aside> </div> </div> </main> <!-- تذييل بعرض كامل --> <footer class="bg-dark text-white py-4"> <div class="container"> <p class="mb-0">© 2024 موقعي</p> </div> </footer>
العروض القصوى للحاويات:
  • sm (≥576px): 540px
  • md (≥768px): 720px
  • lg (≥992px): 960px
  • xl (≥1200px): 1140px
  • xxl (≥1400px): 1320px

2. الأعمدة والتخطيط التلقائي

أتقن تقنيات الأعمدة المتقدمة للتخطيطات المرنة:

<!-- أعمدة ذات عرض تلقائي --> <div class="row"> <div class="col"> عمود بعرض متساوٍ (يشارك المساحة المتاحة) </div> <div class="col"> عمود بعرض متساوٍ (يشارك المساحة المتاحة) </div> <div class="col"> عمود بعرض متساوٍ (يشارك المساحة المتاحة) </div> </div> <!-- مختلط: عرض محدد + عرض تلقائي --> <div class="row"> <div class="col-6"> عرض ثابت 50% </div> <div class="col"> عرض تلقائي (يملأ ال 50% المتبقية) </div> </div> <!-- عرض بناءً على المحتوى --> <div class="row"> <div class="col-auto"> العرض بناءً على المحتوى (لا ينمو) </div> <div class="col"> يأخذ المساحة المتبقية </div> </div> <!-- عملي: تخطيط نموذج --> <form> <div class="row g-3"> <div class="col-md-6"> <label for="firstName" class="form-label">الاسم الأول</label> <input type="text" class="form-control" id="firstName"> </div> <div class="col-md-6"> <label for="lastName" class="form-label">الاسم الأخير</label> <input type="text" class="form-control" id="lastName"> </div> <div class="col-12"> <label for="email" class="form-label">البريد الإلكتروني</label> <input type="email" class="form-control" id="email"> </div> <div class="col-md-8"> <label for="address" class="form-label">العنوان</label> <input type="text" class="form-control" id="address"> </div> <div class="col-md-4"> <label for="zip" class="form-label">الرمز البريدي</label> <input type="text" class="form-control" id="zip"> </div> <div class="col-12"> <button type="submit" class="btn btn-primary">إرسال</button> </div> </div> </form>
نصائح عرض الأعمدة:
  • استخدم col عندما تريد أعمدة بعرض متساوٍ
  • استخدم col-auto عندما يجب أن يحدد المحتوى العرض
  • استخدم col-{number} عندما تحتاج إلى عروض محددة
  • امزجها معًا للحصول على تخطيطات مرنة وقابلة للصيانة

3. نقاط التوقف المتجاوبة في الممارسة

أمثلة من العالم الحقيقي لاستخدام نقاط التوقف:

<!-- مثال 1: صفحة منتج التجارة الإلكترونية --> <div class="container"> <div class="row g-4"> <!-- صور المنتج: عرض كامل على الهاتف، 60% على سطح المكتب --> <div class="col-12 col-lg-7"> <img src="product.jpg" class="img-fluid" alt="المنتج"> <!-- معرض المصغرات --> <div class="row row-cols-4 g-2 mt-2"> <div class="col"><img src="thumb1.jpg" class="img-fluid" alt="مصغرة"></div> <div class="col"><img src="thumb2.jpg" class="img-fluid" alt="مصغرة"></div> <div class="col"><img src="thumb3.jpg" class="img-fluid" alt="مصغرة"></div> <div class="col"><img src="thumb4.jpg" class="img-fluid" alt="مصغرة"></div> </div> </div> <!-- تفاصيل المنتج: عرض كامل على الهاتف، 40% على سطح المكتب --> <div class="col-12 col-lg-5"> <h1 class="h3">اسم المنتج</h1> <p class="text-muted">SKU: 12345</p> <h2 class="h4 text-primary">$99.99</h2> <p>وصف المنتج هنا...</p> <!-- الخيارات --> <div class="mb-3"> <label class="form-label">المقاس</label> <select class="form-select"> <option>صغير</option> <option>متوسط</option> <option>كبير</option> </select> </div> <!-- الأزرار: تكديس على الهاتف، جنبًا إلى جنب على الجهاز اللوحي+ --> <div class="row g-2"> <div class="col-12 col-sm-6"> <button class="btn btn-primary w-100">أضف إلى السلة</button> </div> <div class="col-12 col-sm-6"> <button class="btn btn-outline-secondary w-100">قائمة الرغبات</button> </div> </div> </div> </div> </div>

4. Z-Index وسياق التكديس

تحكم في طبقات العناصر باستخدام أدوات z-index:

<!-- أدوات z-index في Bootstrap --> <div class="position-relative"> <div class="position-absolute top-0 start-0 w-100 h-100 bg-primary opacity-25"> طبقة الخلفية (z-index افتراضي) </div> <div class="position-absolute top-50 start-50 translate-middle z-1"> الطبقة الوسطى (z-index: 1) </div> <div class="position-absolute bottom-0 end-0 z-2"> الطبقة العليا (z-index: 2) </div> <div class="position-absolute top-0 end-0 z-3"> الطبقة الأعلى (z-index: 3) </div> </div> <!-- عملي: تراكب مشروط --> <div class="position-fixed top-0 start-0 w-100 h-100 bg-dark bg-opacity-50 z-2"> <!-- خلفية التراكب --> </div> <div class="position-fixed top-50 start-50 translate-middle z-3 bg-white p-4 rounded"> <!-- محتوى مشروط فوق التراكب --> <h3>عنوان المشروط</h3> <p>محتوى المشروط</p> </div>
فئات Z-Index:
  • z-n1 - z-index: -1
  • z-0 - z-index: 0
  • z-1 - z-index: 1
  • z-2 - z-index: 2
  • z-3 - z-index: 3

ملاحظة: مكونات Bootstrap (navbar، dropdown، modal، tooltip، popover) لها قيم z-index محددة مسبقًا (1000+) لضمان الطبقات الصحيحة.

5. أفضل ممارسات التخطيط

استراتيجيات مجربة لبناء تخطيطات قابلة للصيانة:

<!-- أفضل ممارسة 1: HTML دلالي --> <!DOCTYPE html> <html lang="ar" dir="rtl"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>تخطيط دلالي</title> <link href="bootstrap.min.css" rel="stylesheet"> </head> <body> <!-- استخدم العلامات الدلالية --> <header> <nav class="navbar navbar-expand-lg">...</nav> </header> <main> <section class="hero">...</section> <section class="features">...</section> <article class="blog-post">...</article> </main> <aside class="sidebar">...</aside> <footer>...</footer> </body> </html>
مزالق التخطيط الشائعة:
  • نسيان إغلاق الحاويات أو الصفوف أو الأعمدة بشكل صحيح
  • تداخل الحاويات داخل الحاويات (غير موصى به)
  • استخدام عدد كبير جدًا من الصفوف المتداخلة (اجعلها بسيطة)
  • عدم الاختبار على أجهزة حقيقية (هاتف، جهاز لوحي، سطح المكتب)
  • ترميز الارتفاعات بدلاً من السماح للمحتوى بالتدفق بشكل طبيعي
  • الإفراط في استخدام التموضع الثابت (يمكن أن يسبب مشاكل على الهاتف)
  • عدم مراعاة إمكانية الوصول (التنقل بلوحة المفاتيح، قارئات الشاشة)

المشروع النهائي: موقع ويب كامل

أنشئ موقع ويب متعدد الصفحات كامل بهذه المتطلبات:

الصفحة 1: الصفحة الرئيسية

  • تنقل ثابت مع شعار وقائمة
  • قسم بطل مع صورة خلفية ودعوة لاتخاذ إجراء
  • قسم الميزات (3-4 بطاقات ميزات)
  • دائري للشهادات
  • نموذج الاشتراك في النشرة الإخبارية
  • تذييل مع أعمدة متعددة

الصفحة 2: صفحة عنا

  • رأس الصفحة مع تنقل التنقل
  • تخطيط من عمودين (محتوى + شريط جانبي)
  • شبكة أعضاء الفريق
  • الجدول الزمني للشركة

الصفحة 3: صفحة الاتصال

  • نموذج اتصال مع تنسيق التحقق
  • خريطة الموقع (عنصر نائب)
  • بطاقات معلومات الاتصال

المتطلبات:

  • استخدم أنواع الحاويات المناسبة في جميع أنحاء
  • نفّذ نقاط التوقف المتجاوبة المناسبة
  • طبّق تباعدًا متسقًا باستخدام أدوات Bootstrap
  • استخدم عناصر HTML5 الدلالية
  • تأكد من أن جميع الصور متجاوبة
  • أضف z-index مناسبًا للتراكبات
  • اختبر على الهاتف (375px) والجهاز اللوحي (768px) وسطح المكتب (1200px+)
  • قم بتضمين تسميات ARIA المناسبة لإمكانية الوصول
  • حسّن للأداء (التحميل البطيء، إلخ.)
قائمة التحقق من إتقان التخطيط:
  • ✓ استخدم الحاوية المناسبة لكل قسم
  • ✓ ابدأ بالأولوية للهاتف، عزز للشاشات الأكبر
  • ✓ اجعل التداخل بسيطًا (2-3 مستويات كحد أقصى)
  • ✓ استخدم تباعدًا متسقًا في جميع أنحاء
  • ✓ اختبر جميع نقاط التوقف المتجاوبة
  • ✓ تحقق من HTML وتحقق من إمكانية الوصول
  • ✓ حسّن الصور واستخدم التحميل البطيء
  • ✓ استخدم عناصر HTML الدلالية
  • ✓ وثّق التخطيطات المعقدة بالتعليقات
  • ✓ حافظ على تنظيم CSS وقابليته للصيانة
تهانينا! لقد أكملت الوحدة 2: نظام الشبكة المتقدم. لديك الآن فهم قوي لـ:
  • محاذاة وترتيب الشبكة
  • الشبكات المتداخلة المعقدة
  • أدوات الشبكة والتخصيص
  • أنماط التصميم المتجاوب
  • مكونات تخطيط Bootstrap

في الوحدة التالية، سنغوص في مكتبة مكونات Bootstrap ونتعلم كيفية بناء عناصر واجهة مستخدم تفاعلية!