Bootstrap: مجموعة القوائم والشارات
آخر تحديث: 2026-08-26
1. مقدمة الدرس
(1) المتطلبات الأساسية
- الدرس 10: البطاقات
(2) 🎯 ما الذي ستتعلّمه
- بناء القوائم باستخدام
list-groupوlist-group-item - تنفيذ قوائم تفاعلية باستخدام
list-group-item-action - عرض الأعداد والحالات باستخدام الشارات
- تخصيص محتوى مجموعة القوائم (Flex + الطباعة)
- إزالة الحدود باستخدام
list-group-flush
(3) المشكلة
يبني Charlie نظام إدارة تذاكر ويحتاج إلى عرض "قيد الانتظار (5)"، "قيد التنفيذ (3)"، "مكتمل (12)" في شريط جانبي — مجموعة كلاسيكية من مجموعات القوائم والشارات.
(4) الحل
مجموعات القوائم والشارات هي مكوّنات عرض خفيفة لكنها عملية في Bootstrap. تعرض مجموعات القوائم مجموعة من العناصر ذات الصلة، بينما تعرض الشارات الأعداد أو الحالات في الزوايا.
لفهم الفكرة: مجموعة القوائم =
<ul>مُحسّنة (أنماط أفضل، تفاعلية)، الشارة = ملصق صغير (يُظهر أرقامًا/حالات، مرفق بعناصر أخرى).
(5) الفوائد
استخدام مجموعات القوائم مع الشارات يعرض بوضوح وبشكل حدسي أعداد الإشعارات المصنّفة، مما يُحسّن بشكل كبير كفاءة الحصول على المعلومات.
2. أساسيات مجموعة القوائم
<ul class="list-group">
<li class="list-group-item">An item</li>
<li class="list-group-item">A second item</li>
<li class="list-group-item">A third item</li>
</ul>
النتيجة: تأثيرات مكوّنات بأنماط Bootstrap 5.3 (مثل الأزرار، البطاقات، الCarousel، الCollapse، إلخ). تستخدم الصفحة سمة Bootstrap الافتراضية (فاتحة) والشبكة المتجاوبة افتراضيًا.
▶ مثال: أساسيات مجموعة القوائم
<!DOCTYPE html>
<html lang="ar">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>List Group Demo</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">
<div class="row">
<div class="col-md-4">
<h5>Basic List</h5>
<ul class="list-group">
<li class="list-group-item">Dashboard</li>
<li class="list-group-item">Orders</li>
<li class="list-group-item">Products</li>
<li class="list-group-item">Customers</li>
</ul>
</div>
<div class="col-md-4">
<h5>Active & Disabled</h5>
<div class="list-group">
<a href="#" class="list-group-item list-group-item-action active">Home</a>
<a href="#" class="list-group-item list-group-item-action">Profile</a>
<a href="#" class="list-group-item list-group-item-action disabled">Settings (locked)</a>
</div>
</div>
<div class="col-md-4">
<h5>Flush Style</h5>
<ul class="list-group list-group-flush">
<li class="list-group-item">Inbox <span class="badge bg-primary rounded-pill">3</span></li>
<li class="list-group-item">Sent</li>
<li class="list-group-item">Drafts <span class="badge bg-warning">2</span></li>
</ul>
</div>
</div>
</div>
</body>
</html>
النتيجة: تأثيرات مكوّنات بأنماط Bootstrap 5.3 (مثل الأزرار، البطاقات، الCarousel، الCollapse، إلخ). تستخدم الصفحة سمة Bootstrap الافتراضية (فاتحة) والشبكة المتجاوبة افتراضيًا.
3. تنويعات مجموعة القوائم
(1) مجموعة قوائم تفاعلية
<div class="list-group">
<a href="#" class="list-group-item list-group-item-action active">Active link</a>
<a href="#" class="list-group-item list-group-item-action">Regular link</a>
<button class="list-group-item list-group-item-action">Button as item</button>
</div>
النتيجة: تأثيرات مكوّنات بأنماط Bootstrap 5.3 (مثل الأزرار، البطاقات، الCarousel، الCollapse، إلخ). تستخدم الصفحة سمة Bootstrap الافتراضية (فاتحة) والشبكة المتجاوبة افتراضيًا.
(2) تنويعات الألوان
<ul class="list-group">
<li class="list-group-item list-group-item-primary">Primary item</li>
<li class="list-group-item list-group-item-success">Success item</li>
<li class="list-group-item list-group-item-danger">Danger item</li>
</ul>
النتيجة: تأثيرات مكوّنات بأنماط Bootstrap 5.3 (مثل الأزرار، البطاقات، الCarousel، الCollapse، إلخ). تستخدم الصفحة سمة Bootstrap الافتراضية (فاتحة) والشبكة المتجاوبة افتراضيًا.
| الفئة | لون الخلفية | الدلالة |
|---|---|---|
list-group-item-primary |
أزرق فاتح | معلومات |
list-group-item-success |
أخضر فاتح | نجاح |
list-group-item-danger |
أحمر فاتح | خطأ |
list-group-item-warning |
أصفر فاتح | تحذير |
(3) مجموعة قوائم مع شارات
<ul class="list-group">
<li class="list-group-item d-flex justify-content-between align-items-center">
Notifications
<span class="badge bg-primary rounded-pill">14</span>
</li>
<li class="list-group-item d-flex justify-content-between align-items-center">
Messages
<span class="badge bg-danger rounded-pill">3</span>
</li>
<li class="list-group-item d-flex justify-content-between align-items-center">
Updates
<span class="badge bg-success rounded-pill">7</span>
</li>
</ul>
النتيجة: تأثيرات مكوّنات بأنماط Bootstrap 5.3 (مثل الأزرار، البطاقات، الCarousel، الCollapse، إلخ). تستخدم الصفحة سمة Bootstrap الافتراضية (فاتحة) والشبكة المتجاوبة افتراضيًا.
4. محتوى مجموعة قوائم مخصص
<div class="list-group">
<a href="#" class="list-group-item list-group-item-action">
<div class="d-flex w-100 justify-content-between">
<h5 class="mb-1">New update released</h5>
<small class="text-body-secondary">3 days ago</small>
</div>
<p class="mb-1">Version 2.4 includes bug fixes and performance improvements.</p>
<small class="text-body-secondary">By Alice Chen</small>
</a>
<a href="#" class="list-group-item list-group-item-action">
<div class="d-flex w-100 justify-content-between">
<h5 class="mb-1">Server maintenance</h5>
<small class="text-body-secondary">1 week ago</small>
</div>
<p class="mb-1">Scheduled downtime on Saturday 2:00 AM - 4:00 AM UTC.</p>
<small class="text-body-secondary">By Bob Wang</small>
</a>
</div>
النتيجة: تأثيرات مكوّنات بأنماط Bootstrap 5.3 (مثل الأزرار، البطاقات، الCarousel، الCollapse، إلخ). تستخدم الصفحة سمة Bootstrap الافتراضية (فاتحة) والشبكة المتجاوبة افتراضيًا.
5. الشارات
<h1>Example heading <span class="badge bg-secondary">New</span></h1>
<button class="btn btn-primary position-relative">
Inbox
<span class="position-absolute top-0 start-100 translate-middle badge rounded-pill bg-danger">
99+
</span>
</button>
<span class="badge rounded-pill bg-primary">Primary</span>
<span class="badge rounded-pill bg-warning">Warning</span>
<span class="badge bg-primary">Primary</span>
<span class="badge bg-success">Success</span>
<span class="badge bg-danger">Danger</span>
<span class="badge bg-warning">Warning</span>
<span class="badge bg-info">Info</span>
<span class="badge bg-dark">Dark</span>
النتيجة: تأثيرات مكوّنات بأنماط Bootstrap 5.3 (مثل الأزرار، البطاقات، الCarousel، الCollapse، إلخ). تستخدم الصفحة سمة Bootstrap الافتراضية (فاتحة) والشبكة المتجاوبة افتراضيًا.
(1) دلالات ألوان الشارات
| الفئة | الاستخدام |
|---|---|
bg-primary |
ملصق افتراضي |
bg-success |
مكتمل/ناجح |
bg-danger |
خطأ/عدد الإخفاقات |
bg-warning |
قيد الانتظار/يحتاج اهتمامًا |
bg-info |
ملصق معلوماتي |
bg-secondary |
ملصق محايد/ثانوي |
6. المزيد من أمثلة مجموعة القوائم
▶ مثال: تنقل مجموعة قوائم بنمط التبويب
<div class="row">
<div class="col-4">
<div class="list-group" id="list-tab" role="tablist">
<a class="list-group-item list-group-item-action active" id="list-home-list" data-bs-toggle="list" href="#list-home" role="tab">Home</a>
<a class="list-group-item list-group-item-action" id="list-profile-list" data-bs-toggle="list" href="#list-profile" role="tab">Profile</a>
<a class="list-group-item list-group-item-action" id="list-messages-list" data-bs-toggle="list" href="#list-messages" role="tab">Messages</a>
<a class="list-group-item list-group-item-action" id="list-settings-list" data-bs-toggle="list" href="#list-settings" role="tab">Settings</a>
</div>
</div>
<div class="col-8">
<div class="tab-content" id="nav-tabContent">
<div class="tab-pane fade show active" id="list-home" role="tabpanel">Home content: welcome to the dashboard.</div>
<div class="tab-pane fade" id="list-profile" role="tabpanel">Profile content: manage your personal info.</div>
<div class="tab-pane fade" id="list-messages" role="tabpanel">Messages content: view your inbox.</div>
<div class="tab-pane fade" id="list-settings" role="tabpanel">Settings content: configure preferences.</div>
</div>
</div>
</div>
النتيجة: تأثيرات مكوّنات بأنماط Bootstrap 5.3 (مثل الأزرار، البطاقات، الCarousel، الCollapse، إلخ). تستخدم الصفحة سمة Bootstrap الافتراضية (فاتحة) والشبكة المتجاوبة افتراضيًا.
▶ مثال: قائمة معقدة (شارة + أيقونة)
<div class="list-group">
<a href="#" class="list-group-item list-group-item-action d-flex align-items-center">
<div class="me-3 fs-5">📧</div>
<div class="flex-grow-1">
<div class="d-flex w-100 justify-content-between">
<h6 class="mb-0">New message from Alice</h6>
<small class="text-body-secondary">2 min ago</small>
</div>
<small class="text-body-secondary">Meeting rescheduled to 3pm.</small>
</div>
<span class="badge bg-danger rounded-pill ms-2">3</span>
</a>
<a href="#" class="list-group-item list-group-item-action d-flex align-items-center">
<div class="me-3 fs-5">🔔</div>
<div class="flex-grow-1">
<div class="d-flex w-100 justify-content-between">
<h6 class="mb-0">Server alert</h6>
<small class="text-body-secondary">1 hr ago</small>
</div>
<small class="text-body-secondary">CPU usage exceeded 90%.</small>
</div>
<span class="badge bg-warning rounded-pill ms-2">5</span>
</a>
<a href="#" class="list-group-item list-group-item-action d-flex align-items-center">
<div class="me-3 fs-5">✅</div>
<div class="flex-grow-1">
<div class="d-flex w-100 justify-content-between">
<h6 class="mb-0">Deployment complete</h6>
<small class="text-body-secondary">3 hr ago</small>
</div>
<small class="text-body-secondary">Version 2.4 deployed to production.</small>
</div>
<span class="badge bg-success rounded-pill ms-2">12</span>
</a>
</div>
النتيجة: تأثيرات مكوّنات بأنماط Bootstrap 5.3 (مثل الأزرار، البطاقات، الCarousel، الCollapse، إلخ). تستخدم الصفحة سمة Bootstrap الافتراضية (فاتحة) والشبكة المتجاوبة افتراضيًا.
▶ مثال: مجموعة قوائم بمربعات اختيار
<div class="list-group">
<label class="list-group-item d-flex align-items-center">
<input class="form-check-input me-2" type="checkbox" value="" checked>
HTML & CSS Basics
</label>
<label class="list-group-item d-flex align-items-center">
<input class="form-check-input me-2" type="checkbox" value="">
JavaScript Fundamentals
</label>
<label class="list-group-item d-flex align-items-center">
<input class="form-check-input me-2" type="checkbox" value="" checked>
Bootstrap 5 Framework
</label>
<label class="list-group-item d-flex align-items-center">
<input class="form-check-input me-2" type="checkbox" value="">
React & Vue.js
</label>
<label class="list-group-item d-flex align-items-center disabled">
<input class="form-check-input me-2" type="checkbox" value="" disabled>
Advanced Node.js (locked)
</label>
</div>
النتيجة: تأثيرات مكوّنات بأنماط Bootstrap 5.3 (مثل الأزرار، البطاقات، الCarousel، الCollapse، إلخ). تستخدم الصفحة سمة Bootstrap الافتراضية (فاتحة) والشبكة المتجاوبة افتراضيًا.
▶ مثال: مجموعة قوائم ملوّنة مخصصة
<div class="list-group">
<button type="button" class="list-group-item list-group-item-action list-group-item-success d-flex justify-content-between align-items-center">
<span>✅ Task completed</span>
<span class="badge bg-success rounded-pill">12</span>
</button>
<button type="button" class="list-group-item list-group-item-action list-group-item-warning d-flex justify-content-between align-items-center">
<span>⏳ In progress</span>
<span class="badge bg-warning rounded-pill">5</span>
</button>
<button type="button" class="list-group-item list-group-item-action list-group-item-danger d-flex justify-content-between align-items-center">
<span>❌ Overdue</span>
<span class="badge bg-danger rounded-pill">3</span>
</button>
<button type="button" class="list-group-item list-group-item-action list-group-item-info d-flex justify-content-between align-items-center">
<span>ℹ️ New updates</span>
<span class="badge bg-info rounded-pill">8</span>
</button>
</div>
النتيجة: تأثيرات مكوّنات بأنماط Bootstrap 5.3 (مثل الأزرار، البطاقات، الCarousel، الCollapse، إلخ). تستخدم الصفحة سمة Bootstrap الافتراضية (فاتحة) والشبكة المتجاوبة افتراضيًا.
(1) شجرة مكوّن مجموعة القوائم
flowchart TD
A[list-group container] --> B[list-group-item list item]
B --> C[list-group-item-action<br/>interactive]
B --> D[list-group-item-primary<br/>color variant]
B --> E[badge]
A --> F[list-group-flush<br/>borderless]
A --> G[Custom content<br/>Flex + Typography]
النتيجة: تأثيرات مكوّنات بأنماط Bootstrap 5.3 (مثل الأزرار، البطاقات، الCarousel، الCollapse، إلخ). تستخدم الصفحة سمة Bootstrap الافتراضية (فاتحة) والشبكة المتجاوبة افتراضيًا.
| تنويع مجموعة القوائم | الفئة | الاستخدام |
|---|---|---|
| قائمة أساسية | list-group + list-group-item |
عرض عناصر بسيطة |
| تفاعلية | list-group-item-action |
التنقل، القوائم |
| بلا حدود | list-group-flush |
داخل البطاقات، السيناريوهات المضغوطة |
| صفوف ملوّنة | list-group-item-{color} |
تصنيف الحالات |
| شارة أرقام | badge rounded-pill |
عدد، أرقام إشعارات |
| مربع اختيار/راديو | form-check-input + list-group-item |
قوائم المهام، اختيار متعدد |
| لون الشارة | الدلالة | السيناريو المطبّق |
|---|---|---|
bg-primary |
افتراضي/معلومات | أعداد عادية |
bg-success |
نجاح/مكتمل | مهام مكتملة، ناجحة |
bg-danger |
خطأ/عاجل | أعداد الإخفاقات، أعداد التنبيهات |
bg-warning |
قيد الانتظار | قيد التنفيذ، بانتظار الموافقة |
bg-info |
تلميح | إشعارات جديدة، رسائل جديدة |
bg-secondary |
ثانوي | أعداد مساعدة |
| طريقة التنقل | المزايا | العيوب | أفضل سيناريو |
|---|---|---|---|
| تنقل مجموعة القوائم | تنسيق غني، يدعم الشارات | لا يدعم التداخل | قوائم الشريط الجانبي، التبويبات |
| Nav nav-tabs | نمط تبويبات أصلي، يدعم القوائم المنسدلة | لا يدعم الشارات | تبديل تبويبات الصفحة |
| Navbar nav | متجاوب، تكامل العلامة التجارية | بنية معقدة | التنقل الرئيسي العلوي |
| Dropdown | مضغوط، يوفّر مساحة | يُظهر العنصر الحالي فقط | قائمة المستخدم، الإعدادات |
❓ أسئلة شائعة
ul متداخل يدويًا.rounded-pill ينشئ شكل حبة الدواء (أطراف نصف دائرية)، rounded-1/2/3 درجات متفاوتة من نصف القطر، بدونها تكون مربعة افتراضيًا.<a> أو <button>، أضف list-group-item-action، واستخدم active للإشارة إلى العنصر المحدد حاليًا. مثالية للتنقل الجانبي.active لمجموعة القوائم بعد تحديث الصفحة؟active هي فئة ثابتة. بعد التحديث، يجب إضافتها ديناميكيًا بواسطة الخادم أو JavaScript بناءً على المسار الحالي، مثلاً باستخدام مطابقة window.location.list-group-flush، لتتماشى مع حواف البطاقة بلا حدود أو زوايا إضافية، لتتكامل بصريًا كوحدة واحدة. مجموعة القوائم خارج البطاقة لها حدودها وزواياها الخاصة.📖 ملخص
- مجموعة القوائم:
list-group+list-group-item،list-group-item-actionيُفعّل التفاعل. list-group-flushيزيل الحدود،list-group-item-{color}يوفر تنويعات ألوان.- محتوى مخصص: استخدم Flexbox وفئات الطباعة داخل
list-group-item. - الشارة:
badge bg-{color}،rounded-pillلشكل حبة الدواء.
📝 تمارين
- ⭐ أنشئ مجموعة قوائم تنقل جانبية: 5 عناصر قائمة، الصفحة الحالية مميّزة كـ
active، واحدة مضبوطة كـdisabled، كل عنصر يعرض شارة عدد مقابلة على اليمين. - ⭐⭐ أنشئ قائمة إشعارات باستخدام مجموعة قوائم + محتوى مخصص: كل إشعار له عنوان، طابع زمني (صغير)، معاينة جسم، ويدعم أحداث النقر.
- ⭐⭐⭐ أنشئ مجموعة أزرار، كل زر يعرض شارة عدد في الزاوية العلوية اليمنى، لمحاكاة "Inbox (12)"، "Pending Approval (5)"، "Drafts (3)".