إنشاء تخطيطات متجاوبة تتكيف مع أحجام الشاشات المختلفة هو جوهر تصميم الويب الحديث. في هذا الدرس، سنتقن فئات الشبكة المتجاوبة في Bootstrap ونتعلم كيفية بناء تخطيطات تبدو مثالية على أي جهاز.
فهم تحجيم الأعمدة المتجاوب
نظام الشبكة المتجاوب في Bootstrap يتيح لك تحديد عروض أعمدة مختلفة عند نقاط توقف مختلفة. وهذا يعني أن التخطيط الخاص بك يمكن أن يتكيف بشكل مثالي مع الهواتف والأجهزة اللوحية وأجهزة اللابتوب وأجهزة سطح المكتب.
النهج الذي يعطي الأولوية للهاتف المحمول: يطبق Bootstrap الأنماط من أصغر حجم شاشة فصاعدًا. فئة مثل col-md-6 تعني "عرض 6 أعمدة بدءًا من الشاشات المتوسطة وما فوق". على الشاشات الأصغر، سيكون بعرض كامل ما لم تحدد خلاف ذلك.
فئات الأعمدة المتجاوبة
يوفر Bootstrap فئات أعمدة متجاوبة لكل نقطة توقف:
صيغة فئة العمود:
.col-{breakpoint}-{size}
خيارات نقطة التوقف:
(بدون) - صغير جدًا (<576px) - ينطبق على جميع الأحجام
sm - صغير (≥576px)
md - متوسط (≥768px)
lg - كبير (≥992px)
xl - كبير جدًا (≥1200px)
xxl - كبير جدًا جدًا (≥1400px)
خيارات الحجم:
1 إلى 12 - عدد الأعمدة المراد احتلالها
auto - عرض تلقائي بناءً على المحتوى
أمثلة:
.col-6 - 6 أعمدة في جميع الأحجام
.col-sm-6 - 6 أعمدة من الشاشات الصغيرة فما فوق
.col-md-4 - 4 أعمدة من الشاشات المتوسطة فما فوق
.col-lg-3 - 3 أعمدة من الشاشات الكبيرة فما فوق
.col-xl-2 - عمودان من الشاشات الكبيرة جدًا فما فوق
مثال تخطيط متجاوب أساسي
لننشئ تخطيطًا يتكدس على الهاتف المحمول ولكن يصبح متعدد الأعمدة على الشاشات الأكبر:
<div class="container">
<div class="row">
<div class="col-md-6">
<h3>العمود 1</h3>
<p>عرض كامل على الهاتف المحمول، نصف العرض على الشاشات المتوسطة+</p>
</div>
<div class="col-md-6">
<h3>العمود 2</h3>
<p>عرض كامل على الهاتف المحمول، نصف العرض على الشاشات المتوسطة+</p>
</div>
</div>
</div>
السلوك:
الهاتف المحمول (<768px): كل عمود بعرض 100% (مكدس)
الجهاز اللوحي+ (≥768px): كل عمود بعرض 50% (جنبًا إلى جنب)
لماذا يعمل هذا: بدون تحديد نقطة توقف، تكون الأعمدة افتراضيًا بعرض كامل على أصغر الشاشات. تدخل فئة col-md-6 حيز التنفيذ عند 768 بكسل وما فوق، مما يجعل كل عمود يشغل نصف العرض.
الجمع بين نقاط توقف متعددة
يمكنك الجمع بين فئات متجاوبة متعددة على نفس العنصر لإنشاء تخطيطات تكيفية معقدة:
<div class="container">
<div class="row">
<div class="col-12 col-sm-6 col-md-4 col-lg-3">
عمود متجاوب
</div>
<div class="col-12 col-sm-6 col-md-4 col-lg-3">
عمود متجاوب
</div>
<div class="col-12 col-sm-6 col-md-4 col-lg-3">
عمود متجاوب
</div>
<div class="col-12 col-sm-6 col-md-4 col-lg-3">
عمود متجاوب
</div>
</div>
</div>
السلوك:
صغير جدًا (<576px): عمود واحد في كل صف (col-12)
صغير (≥576px): عمودان في كل صف (col-sm-6)
متوسط (≥768px): 3 أعمدة في كل صف (col-md-4)
كبير (≥992px): 4 أعمدة في كل صف (col-lg-3)
أعمدة التخطيط التلقائي
يوفر Bootstrap أعمدة تخطيط تلقائي توزع المساحة بالتساوي تلقائيًا:
1. أعمدة متساوية العرض
<div class="container">
<div class="row">
<div class="col">
عمود متساوي العرض
</div>
<div class="col">
عمود متساوي العرض
</div>
<div class="col">
عمود متساوي العرض
</div>
</div>
</div>
النتيجة: ثلاثة أعمدة، كل منها يشغل بالضبط 33.33% من العرض
2. متعدد الصفوف متساوي العرض
<div class="container">
<div class="row">
<div class="col">العمود 1</div>
<div class="col">العمود 2</div>
<div class="w-100"></div> <!-- إجبار صف جديد -->
<div class="col">العمود 3</div>
<div class="col">العمود 4</div>
</div>
</div>
النتيجة: صفان مع عمودين متساويين في كل منهما
3. محتوى متغير العرض
<div class="container">
<div class="row">
<div class="col">
عرض متساوٍ
</div>
<div class="col-auto">
العرض بناءً على المحتوى
</div>
<div class="col">
عرض متساوٍ
</div>
</div>
</div>
النتيجة: العمود الأوسط يحدد حجمه حسب المحتوى، الأعمدة الجانبية تتشارك المساحة المتبقية بالتساوي
التفاف الأعمدة
عندما تتجاوز الأعمدة 12 في صف، فإنها تلتف تلقائيًا إلى السطر التالي:
<div class="container">
<div class="row">
<div class="col-9">9 أعمدة</div>
<div class="col-4">4 أعمدة (تلتف لأن 9+4=13)</div>
<div class="col-6">6 أعمدة</div>
</div>
</div>
النتيجة البصرية:
الصف 1: [عرض 9 أعمدة]
الصف 2: [4 أعمدة][6 أعمدة][2 فارغة]
انتبه: بينما يعمل التفاف الأعمدة، عادةً ما يكون من الأفضل استخدام صفوف صريحة للوضوح والسلوك القابل للتنبؤ. يمكن أن يسبب الالتفاف تخطيطات غير متوقعة على أحجام الشاشات المختلفة.
أمثلة تخطيط متجاوب عملية
مثال 1: شبكة المنتجات (بطاقات متجاوبة)
<div class="container">
<div class="row">
<!-- المنتج 1 -->
<div class="col-12 col-sm-6 col-md-4 col-lg-3">
<div class="card">
<img src="product1.jpg" class="card-img-top" alt="المنتج 1">
<div class="card-body">
<h5 class="card-title">اسم المنتج</h5>
<p class="card-text">$29.99</p>
<button class="btn btn-primary">أضف إلى السلة</button>
</div>
</div>
</div>
<!-- كرر للمزيد من المنتجات -->
<div class="col-12 col-sm-6 col-md-4 col-lg-3">
<!-- المنتج 2 -->
</div>
<div class="col-12 col-sm-6 col-md-4 col-lg-3">
<!-- المنتج 3 -->
</div>
<div class="col-12 col-sm-6 col-md-4 col-lg-3">
<!-- المنتج 4 -->
</div>
</div>
</div>
سلوك التخطيط:
الهاتف المحمول: عمود واحد (عرض كامل)
صغير: عمودان في كل صف
متوسط: 3 أعمدة في كل صف
كبير+: 4 أعمدة في كل صف
مثال 2: تخطيط المدونة (المحتوى الرئيسي + الشريط الجانبي)
<div class="container">
<div class="row">
<!-- المحتوى الرئيسي -->
<div class="col-12 col-lg-8">
<article>
<h1>عنوان منشور المدونة</h1>
<p>محتوى منشور المدونة يذهب هنا...</p>
</article>
</div>
<!-- الشريط الجانبي -->
<div class="col-12 col-lg-4">
<aside>
<h3>المنشورات الأخيرة</h3>
<ul>
<li>منشور 1</li>
<li>منشور 2</li>
<li>منشور 3</li>
</ul>
</aside>
</div>
</div>
</div>
سلوك التخطيط:
الهاتف المحمول/الجهاز اللوحي (<992px): الشريط الجانبي أسفل المحتوى (كلاهما بعرض كامل)
سطح المكتب (≥992px): الشريط الجانبي بجانب المحتوى (66.67% / 33.33%)
مثال 3: قسم الميزات
<div class="container">
<div class="row">
<div class="col-12 col-md-6 col-xl-3">
<div class="text-center">
<i class="bi bi-lightning fs-1 text-primary"></i>
<h3>سريع</h3>
<p>أداء سريع للغاية</p>
</div>
</div>
<div class="col-12 col-md-6 col-xl-3">
<div class="text-center">
<i class="bi bi-shield-check fs-1 text-success"></i>
<h3>آمن</h3>
<p>أمان على مستوى البنوك</p>
</div>
</div>
<div class="col-12 col-md-6 col-xl-3">
<div class="text-center">
<i class="bi bi-phone fs-1 text-info"></i>
<h3>متجاوب</h3>
<p>يعمل على جميع الأجهزة</p>
</div>
</div>
<div class="col-12 col-md-6 col-xl-3">
<div class="text-center">
<i class="bi bi-heart fs-1 text-danger"></i>
<h3>محبوب</h3>
<p>موثوق به من قبل الآلاف</p>
</div>
</div>
</div>
</div>
سلوك التخطيط:
الهاتف المحمول (<768px): عمود واحد (مكدس)
الجهاز اللوحي (768px-1199px): عمودان في كل صف
سطح المكتب (≥1200px): 4 أعمدة في كل صف
مثال 4: تخطيط لوحة المعلومات
<div class="container-fluid">
<div class="row">
<!-- تنقل الشريط الجانبي -->
<div class="col-12 col-md-3 col-lg-2 bg-dark text-white">
<nav>
<h4>لوحة المعلومات</h4>
<ul class="nav flex-column">
<li class="nav-item">الرئيسية</li>
<li class="nav-item">التحليلات</li>
<li class="nav-item">التقارير</li>
</ul>
</nav>
</div>
<!-- منطقة المحتوى الرئيسية -->
<div class="col-12 col-md-9 col-lg-10">
<div class="row">
<!-- بطاقات الإحصائيات -->
<div class="col-12 col-sm-6 col-xl-3">
<div class="card">
<div class="card-body">
<h5>إجمالي المستخدمين</h5>
<h2>1,234</h2>
</div>
</div>
</div>
<!-- المزيد من بطاقات الإحصائيات... -->
</div>
</div>
</div>
</div>
سلوك التخطيط:
الهاتف المحمول (<768px): الشريط الجانبي في الأعلى، محتوى بعرض كامل أسفله
الجهاز اللوحي (≥768px): الشريط الجانبي 25%، المحتوى 75%
سطح المكتب (≥992px): الشريط الجانبي 16.67%، المحتوى 83.33%
مثال صفحة متجاوبة كاملة
إليك مثال كامل يجمع بين تقنيات متجاوبة متعددة:
<!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="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css"
rel="stylesheet">
</head>
<body>
<!-- الرأس -->
<header class="bg-primary text-white py-3">
<div class="container">
<h1>موقعي المتجاوب</h1>
</div>
</header>
<!-- قسم البطل -->
<section class="bg-light py-5">
<div class="container">
<div class="row align-items-center">
<div class="col-12 col-lg-6">
<h2>مرحبًا بك في موقعنا</h2>
<p class="lead">قم ببناء مواقع ويب متجاوبة رائعة</p>
<button class="btn btn-primary btn-lg">ابدأ الآن</button>
</div>
<div class="col-12 col-lg-6">
<img src="hero-image.jpg" class="img-fluid" alt="البطل">
</div>
</div>
</div>
</section>
<!-- الميزات -->
<section class="py-5">
<div class="container">
<h2 class="text-center mb-4">الميزات</h2>
<div class="row">
<div class="col-12 col-sm-6 col-lg-3 mb-4">
<div class="card h-100">
<div class="card-body text-center">
<h4>الميزة 1</h4>
<p>الوصف</p>
</div>
</div>
</div>
<!-- كرر لـ 3 ميزات أخرى -->
</div>
</div>
</section>
<!-- التذييل -->
<footer class="bg-dark text-white py-4">
<div class="container">
<div class="row">
<div class="col-12 col-md-4">
<h5>حول</h5>
<p>معلومات الشركة</p>
</div>
<div class="col-12 col-md-4">
<h5>الروابط</h5>
<ul class="list-unstyled">
<li>الرئيسية</li>
<li>حول</li>
</ul>
</div>
<div class="col-12 col-md-4">
<h5>اتصل</h5>
<p>البريد الإلكتروني: info@example.com</p>
</div>
</div>
</div>
</footer>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js">
</script>
</body>
</html>
نصيحة الاختبار: اختبر دائمًا تخطيطاتك المتجاوبة عن طريق تغيير حجم نافذة المتصفح أو استخدام محاكاة الجهاز في أدوات المطور في المتصفح. تحقق من جميع نقاط التوقف لضمان انتقالات سلسة.
أفضل ممارسات التصميم المتجاوب
1. ابدأ بالأولوية للهاتف المحمول
صمم لأصغر شاشة أولاً، ثم حسّن للشاشات الأكبر. استخدم col-12 أو فقط col كأساس، ثم أضف فئات نقطة التوقف.
2. استخدم نقاط توقف دلالية
اختر نقاط التوقف بناءً على المحتوى الخاص بك، وليس أجهزة محددة. إذا انكسر تخطيطك عند 650 بكسل، فاستخدم أقرب نقطة توقف Bootstrap (sm عند 576 بكسل أو md عند 768 بكسل).
3. حافظ على البساطة
لا تعقد الأمور بفئات نقطة توقف كثيرة جدًا. في كثير من الأحيان، تكون 2-3 نقاط توقف كافية: الهاتف المحمول (col-12)، الجهاز اللوحي (col-md-X)، سطح المكتب (col-lg-X).
4. التباعد المتسق
استخدم أدوات التباعد في Bootstrap (mt، mb، py، إلخ) بشكل متسق عبر نقاط التوقف للحصول على تناسق بصري.
تمرين تطبيقي:
- أنشئ صفحة متجاوبة باسم
responsive-portfolio.html
- قم بتضمين الأقسام التالية:
- رأس مع تنقل
- قسم البطل مع نص وصورة (جنبًا إلى جنب على سطح المكتب، مكدسة على الهاتف المحمول)
- معرض المشاريع مع عمود واحد على الهاتف المحمول، 2 على الجهاز اللوحي، 3 على سطح المكتب
- قسم حول مع عمودين على سطح المكتب، مكدسة على الهاتف المحمول
- تذييل مع 3 أعمدة على سطح المكتب، مكدسة على الهاتف المحمول
- اختبر تخطيطك في أحجام الشاشات المختلفة
- أضف التباعد والتصميم المناسب
تحدي: أنشئ جدول تسعير متجاوب مع عمود واحد على الهاتف المحمول، عمودين على الجهاز اللوحي، و4 أعمدة على سطح المكتب. يجب أن يكون لكل بطاقة تسعير ارتفاع متساوٍ!
أنماط متجاوبة شائعة
النمط 1: التكديس إلى الأفقي
<div class="col-md-6"></div>
الهاتف المحمول: مكدس (100%)
سطح المكتب: جنبًا إلى جنب (50/50)
النمط 2: شبكة 1-2-4
<div class="col-12 col-md-6 col-lg-3"></div>
الهاتف المحمول: عمود واحد
الجهاز اللوحي: عمودان
سطح المكتب: 4 أعمدة
النمط 3: تبديل الشريط الجانبي
<div class="col-12 col-lg-8">الرئيسي</div>
<div class="col-12 col-lg-4">الشريط الجانبي</div>
الهاتف المحمول: الشريط الجانبي أسفل الرئيسي (كلاهما 100%)
سطح المكتب: الشريط الجانبي بجانب الرئيسي (66.67% / 33.33%)
النمط 4: بطاقات متساوية الارتفاع
<div class="col-sm-6 col-lg-4">
<div class="card h-100">المحتوى</div>
</div>
تمتد البطاقات إلى ارتفاع متساوٍ في كل صف
الملخص
في هذا الدرس، أتقنت:
- فئات الأعمدة المتجاوبة مع نقاط التوقف (col-sm، col-md، col-lg، إلخ.)
- الجمع بين فئات نقاط توقف متعددة لتخطيطات متجاوبة معقدة
- أعمدة التخطيط التلقائي التي توزع المساحة بالتساوي
- أعمدة متغيرة العرض بناءً على المحتوى
- سلوك التفاف الأعمدة عند تجاوز 12 عمود
- أنماط متجاوبة عملية للتخطيطات الشائعة (شبكات المنتجات، المدونات، لوحات المعلومات)
- نهج التصميم الذي يعطي الأولوية للهاتف المحمول وأفضل الممارسات
- اختبار وتحسين التخطيطات المتجاوبة
لديك الآن أساس متين في نظام الشبكة في Bootstrap! في الوحدة التالية، سنستكشف الطباعة والألوان وتصميم المحتوى في Bootstrap لجعل تخطيطاتك جميلة.