مقدمة في Bootstrap والتثبيت
1. نظرة عامة على الدرس
(1) المتطلبات المسبقة
- إتقان وسوم HTML الأساسية (
div،p،h1~h6،a،img) - فهم محددات CSS والخصائص الشائعة (
color،margin،padding،font-size)
(2) 🎯 ما ستتعلمه
- فهم ما هو Bootstrap وقدراته الأساسية
- تعلم تثبيت Bootstrap 5.3 عبر CDN
- بناء أول صفحة Bootstrap بشكل مستقل
- إتقان اختيار إصدار Bootstrap والمقارنة بين الإصدارات
- فهم قواعد تسمية أصناف Bootstrap
(3) المشكلة
أليس، مبتدئة أنهت للتو دراسة HTML وCSS، تريد إنشاء صفحة شخصية تحتوي على شريط تنقل وبطاقات وجداول وعرض شرائح — لكن كتابة CSS من الصفر بطيئة جدًا.
(4) الحل
Bootstrap هو حاليًا إطار CSS الأمامي الأكثر شعبية. يوفر مكتبة كاملة من المكونات ونظام شبكة متجاوب، مما يتيح لك بناء صفحات ويب جميلة ومتوافقة مع أجهزة متعددة بسرعة دون كتابة CSS من الصفر.
لفهم الفكرة: كتابة CSS يدويًا تشبه شراء المكونات وتقطيع الخضار وطهي الطعام بنفسك؛ أما استخدام Bootstrap ف يشبه طلب الطعام الجاهز — تختار المكونات وهو يتولى التنسيق بينما تركز أنت على التجميع.
(5) الفوائد
بعد اعتماد Bootstrap، تحتاج أليس فقط إلى إدخال CDN وإضافة الأصناف المناسبة لبناء صفحات احترافية بشريط تنقل وبطاقات وجداول بسرعة. العمل الذي كان يتطلب مئات الأسطر من CSS المكتوبة يدويًا أصبح الآن عشرات الأسطر فقط من HTML.
2. ما هو Bootstrap
طوّر Bootstrap في البداية مهندسا تويتر مارك أوتو وجاكوب ثورنتون في عام 2011، وكان يُسمى في الأصل Twitter Blueprint. بعد أكثر من عقد من تكرارات الإصدارات الرئيسية، أصبح Bootstrap 5.3 الحالي إطارًا ناضجًا ومستقرًا.
(1) الميزات الأساسية
يوفر Bootstrap أربع قدرات رئيسية:
| القدرة | الوصف | مثال |
|---|---|---|
| نظام الشبكة | تخطيط متجاوب من 12 عمودًا يتكيف مع الجوال/الجهاز اللوحي/سطح المكتب | col-md-6 col-lg-4 |
| مكتبة المكونات | أكثر من 70 مكوّن جاهز من HTML/CSS/JS | أزرار، بطاقات، أشرطة تنقل، نوافذ منبثقة |
| أصناف مساعدة | أدوات CSS ذرية تُلغي الحاجة للأنماط المخصصة | mt-3، text-center، d-flex |
| إضافات JS | لا يحتاج إلى jQuery، مبني على JavaScript الأصلي | عرض شرائح، نوافذ منبثقة، أكورديون |
(2) المقارنة مع الأطر الأخرى
| البُعد | Bootstrap | Tailwind CSS | CSS مكتوب يدويًا |
|---|---|---|---|
| منحنى التعلم | منخفض (تسمية أصناف بديهية) | متوسط-مرتفع (عدد كبير من الأصناف المساعدة للحفظ) | مرتفع (يتطلب معرفة بالتخطيط/المحددات/التوافق) |
| سرعة التطوير | سريع | سريع | بطيء |
| مرونة التخصيص | متوسطة (تغطية متغيرات Sass) | عالية (تخصيص على مستوى نظام التصميم) | الأعلى |
| حجم الملف | متوسط (~30KB مضغوط) | صغير (تجميع عند الطلب) | يعتمد على حجم الكود |
| ثراء المكونات | 70+ مكوّن | لا مكونات مدمجة | كله مُخصص |
| السيناريوهات المناسبة | التطوير السريع، لوحات الإدارة، MVP | أنظمة التصميم، تخصيص العلامة التجارية | الأعمال الأساسية، تحسين الأداء |
(3) تاريخ الإصدارات
timeline
title Bootstrap Version Timeline
2011 : v2.0 : Twitter Blueprint Open Source
2013 : v3.0 : Flat Design + Mobile First
2018 : v4.0 : Flexbox Grid + Sass
2021 : v5.0 : Removed jQuery + CSS Variables
2023 : v5.3 : Dark Mode + Accent Colors
النتيجة: تأثيرات مكوّنات Bootstrap 5.3 حيث تكون الأنماط فعّالة (مثل الأزرار، البطاقات، عرض الشرائح، الأكورديون)، مع استخدام الصفحة للسمة الافتراضية لـ Bootstrap (الوضع الفاتح) ونظام الشبكة المتجاوب.
3. تثبيت Bootstrap
تستخدم الدروس الـ15 الأولى من هذا البرنامج التعليمي طريقة CDN — لا تحتاج إلى تنزيل أي ملفات؛ فقط أدخل سطرين من الكود في HTML.
(1) الطريقة الأولى: الت introducción عبر CDN (موصى بها)
▶ مثال: قالب أساسي عبر CDN
<!DOCTYPE html>
<html lang="ar">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>My First Bootstrap Page</title>
<!-- Bootstrap CSS -->
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css" rel="stylesheet">
</head>
<body>
<h1>Hello, Bootstrap!</h1>
<p class="lead">This is my first Bootstrap page.</p>
<!-- Bootstrap JS + Popper (needed for interactive components) -->
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/js/bootstrap.bundle.min.js"></script>
</body>
</html>
النتيجة: تأثيرات مكوّنات Bootstrap 5.3 حيث تكون الأنماط فعّالة (مثل الأزرار، البطاقات، عرض الشرائح، الأكورديون)، مع استخدام الصفحة للسمة الافتراضية لـ Bootstrap (الوضع الفاتح) ونظام الشبكة المتجاوب.
نقاط رئيسية:
- يُحمَّل CSS داخل
<head>، ويُوضع JS قبل</body> bootstrap.bundle.min.jsيتضمن Popper.js (مطلوب لمكونات النوافذ المنبثقة)- استخدام نسخة
min(المضغوطة) يقلل وقت التحميل
(2) الطريقة الثانية: التثبيت عبر npm (تُستخدم في المرحلة 5)
npm install bootstrap@5.3.3
// import in JS entry file
import 'bootstrap/dist/css/bootstrap.min.css';
import 'bootstrap/dist/js/bootstrap.bundle.min.js';
النتيجة: تأثيرات مكوّنات Bootstrap 5.3 حيث تكون الأنماط فعّالة (مثل الأزرار، البطاقات، عرض الشرائح، الأكورديون)، مع استخدام الصفحة للسمة الافتراضية لـ Bootstrap (الوضع الفاتح) ونظام الشبكة المتجاوب.
يجب دمج هذه الطريقة مع تخصيص Sass في المرحلة 5؛ ويمكن تخطيها في المرحلة الأولى.
4. مثال على صفحة كاملة
فيما يلي صفحة Bootstrap كاملة تحتوي على شريط تنقل وأزرار وبطاقات وتخطيط شبكة:
▶ مثال: قالب صفحة شخصية شامل
<!DOCTYPE html>
<html lang="ar">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Bootstrap Demo - Alice's Portfolio</title>
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css" rel="stylesheet">
</head>
<body>
<!-- Navigation -->
<nav class="navbar navbar-expand-lg bg-dark navbar-dark">
<div class="container">
<a class="navbar-brand" href="#">Alice</a>
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navMenu">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navMenu">
<ul class="navbar-nav ms-auto">
<li class="nav-item"><a class="nav-link active" href="#">Home</a></li>
<li class="nav-item"><a class="nav-link" href="#">Projects</a></li>
<li class="nav-item"><a class="nav-link" href="#">Contact</a></li>
</ul>
</div>
</div>
</nav>
<!-- Hero Section -->
<div class="bg-primary text-white text-center py-5">
<div class="container">
<h1 class="display-4">Hi, I'm Alice</h1>
<p class="lead">A web developer who loves building clean, responsive websites.</p>
<a href="#" class="btn btn-light btn-lg">View My Work</a>
</div>
</div>
<!-- Cards -->
<div class="container my-5">
<div class="row">
<div class="col-md-4 mb-3">
<div class="card">
<div class="card-body">
<h5 class="card-title">Web Design</h5>
<p class="card-text">Clean and modern interfaces built with Bootstrap.</p>
</div>
</div>
</div>
<div class="col-md-4 mb-3">
<div class="card">
<div class="card-body">
<h5 class="card-title">Responsive Layout</h5>
<p class="card-text">Works perfectly on mobile, tablet, and desktop.</p>
</div>
</div>
</div>
<div class="col-md-4 mb-3">
<div class="card">
<div class="card-body">
<h5 class="card-title">UI Components</h5>
<p class="card-text">Over 70 ready-to-use components at your fingertips.</p>
</div>
</div>
</div>
</div>
</div>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/js/bootstrap.bundle.min.js"></script>
</body>
</html>
النتيجة: تأثيرات مكوّنات Bootstrap 5.3 حيث تكون الأنماط فعّالة (مثل الأزرار، البطاقات، عرض الشرائح، الأكورديون)، مع استخدام الصفحة للسمة الافتراضية لـ Bootstrap (الوضع الفاتح) ونظام الشبكة المتجاوب.
يتكون هذا الكود من حوالي 40 سطرًا فقط من HTML — مقارنةً بكتابة CSS يدويًا والتي كانت ستتطلب 150+ سطرًا على الأقل.
5. قواعد تسمية أصناف Bootstrap
تتبع تسمية أصناف Bootstrap نمطًا ثابتًا؛ فهم هذا النموذج يتيح لك "تخمين" معظم أسماء الأصناف:
{property}{direction}-{size}-{value}
| الجزء | المعنى | مثال |
|---|---|---|
property |
اختصار الخاصية | m=margin، p=padding، text=text-align |
direction |
الاتجاه (اختياري) | t=أعلى، b=أسفل، s=بداية، e=نهاية |
size |
نقاط التوقف (اختياري) | sm، md، lg، xl، xxl |
value |
القيمة | 0 ~ 5، auto، center، start |
على سبيل المثال، mt-md-3 يضبط margin-top: 1rem على شاشات md فأكبر. يمتد نظام التسمية هذا عبر جميع أنحاء Bootstrap وسيتم تفصيله في الدروس اللاحقة.
(1) مقارنة كفاءة التطوير بين Bootstrap وCSS الخالص
| السيناريو | CSS الأصلي | Bootstrap | الوقت الموفّر |
|---|---|---|---|
| شبكة 3 أعمدة متجاوبة | 40+ سطر media queries | سطر واحد row-cols-md-3 |
~90% |
| شريط تنقل + قائمة قابلة للطي | 80+ سطر CSS + JS | مكوّن navbar واحد |
~85% |
| تخطيط بالبطاقات | 60+ سطر CSS | مكوّن card واحد |
~95% |
| أنماط التحقق من النماذج | 30+ سطر CSS | صنف was-validated |
~90% |
(2) مقارنة اختيار إصدار Bootstrap
| الإصدار | jQuery | متغيرات CSS | الوضع الداكن | الشبكة | دعم IE |
|---|---|---|---|---|---|
| v4.6 | مطلوب | لا يوجد | لا يوجد | Flexbox | ✅ |
| v5.0 | أُزيل | أُضيف | لا يوجد | Flexbox + xxl | ❌ |
| v5.3 | أُزيل | محسّن | ✅ | Flexbox + مساعدو CSS Grid | ❌ |
▶ مثال: التحقق من نجاح تحميل Bootstrap
<!DOCTYPE html>
<html lang="ar">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Verify Bootstrap</title>
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css" rel="stylesheet">
</head>
<body>
<div class="container text-center py-5">
<div class="spinner-border text-primary mb-3" role="status">
<span class="visually-hidden">Loading...</span>
</div>
<h3>Bootstrap 5.3.3 is loaded</h3>
<p class="text-success"><strong>✓</strong> CSS is working</p>
<button class="btn btn-primary" onclick="alert('JS is working!')">Test JS</button>
</div>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/js/bootstrap.bundle.min.js"></script>
</body>
</html>
النتيجة: تأثيرات مكوّنات Bootstrap 5.3 حيث تكون الأنماط فعّالة (مثل الأزرار، البطاقات، عرض الشرائح، الأكورديون)، مع استخدام الصفحة للسمة الافتراضية لـ Bootstrap (الوضع الفاتح) ونظام الشبكة المتجاوب.
▶ مثال: استخدام سريع لمكونات شائعة
<!DOCTYPE html>
<html lang="ar">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Bootstrap Components</title>
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css" rel="stylesheet">
</head>
<body>
<div class="container py-4">
<span class="badge bg-primary">New</span>
<span class="badge bg-success">Active</span>
<span class="badge bg-danger">Expired</span>
<div class="progress mt-3" style="height: 20px;">
<div class="progress-bar bg-success" style="width: 75%">75% Complete</div>
</div>
<div class="alert alert-info mt-3">Info alert with an <a href="#" class="alert-link">example link</a>.</div>
</div>
</body>
</html>
النتيجة: تأثيرات مكوّنات Bootstrap 5.3 حيث تكون الأنماط فعّالة (مثل الأزرار، البطاقات، عرض الشرائح، الأكورديون)، مع استخدام الصفحة للسمة الافتراضية لـ Bootstrap (الوضع الفاتح) ونظام الشبكة المتجاوب.
▶ مثال: تقنيات تصحيح الأخطاء بأدوات المطور
<!DOCTYPE html>
<html lang="ar">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>DevTools Practice</title>
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css" rel="stylesheet">
</head>
<body>
<div class="container py-4">
<h1>DevTools Practice</h1>
<p class="text-muted">Open DevTools (F12) and inspect these Bootstrap elements.</p>
<div class="row">
<div class="col-4"><div class="bg-primary text-white p-3 rounded">Col 1</div></div>
<div class="col-4"><div class="bg-success text-white p-3 rounded">Col 2</div></div>
<div class="col-4"><div class="bg-info text-white p-3 rounded">Col 3</div></div>
</div>
</div>
</body>
</html>
النتيجة: تأثيرات مكوّنات Bootstrap 5.3 حيث تكون الأنماط فعّالة (مثل الأزرار، البطاقات، عرض الشرائح، الأكورديون)، مع استخدام الصفحة للسمة الافتراضية لـ Bootstrap (الوضع الفاتح) ونظام الشبكة المتجاوب.
❓ أسئلة شائعة
bootstrap.bundle.min.js لاستخدام جميع المكونات التفاعلية.left/right بـ start/end.integrity للتحقق من سلامة الملف. لبيئات الإنتاج، فكّر في استضافة ملفات Bootstrap على CDN الخاص بك.📖 ملخص
- Bootstrap هو إطار CSS يوفر نظام شبكة + مكتبة مكونات + أصناف مساعدة + إضافات JS
- مقارنةً بكتابة CSS يدويًا، تتحسن سرعة التطوير بشكل كبير، مما يجعله مناسبًا لبناء صفحات متجاوبة بسرعة
- يُوصى بالت introducción عبر CDN:
<link>واحد +<script>واحد للبدء - تتبع تسمية الأصناف نمط
{property}{direction}-{size}-{value}، مما يسهل الحفظ
📝 تمارين
- ⭐ أنشئ ملف HTML جديدًا واستخدم طريقة CDN لاستيراد Bootstrap 5.3.3. ضع
<h1>و<p class="lead">في الصفحة لمراقبة تأثيرات الخط والمسافات الافتراضية. - ⭐⭐ ارجع إلى قالب "



