في هذا الدرس 7تصفّح المواضيع
تُعدّ القوائم المنسدلة Dropdowns من أكثر المكوّنات التفاعلية حضوراً في لوحات التحكم وأشرطة الإجراءات، إذ تجمع عدّة أوامر سياقية خلف زر واحد أنيق. يعتمد Bootstrap 5.3 في حساب إحداثيات القائمة على مكتبة التموضع الذكي Popper المدمجة مسبقاً داخل ملف bootstrap.bundle.min.js، مع تشغيل كامل عبر السمة data-bs-toggle="dropdown" دون أي حاجة لمكتبة jQuery.
يتألف الهيكل القياسي من حاوية .dropdown تضم زر فتح يحمل الكلاس .dropdown-toggle، وتليه قائمة <ul class="dropdown-menu"> بداخلها عناصر .dropdown-item المبنية على أزرار أو روابط دلالية.
تتكيف القوائم المنسدلة مع جميع أحجام الأزرار في بوتستراب؛ فسواء طبّقت .btn-lg للأشرطة البارزة أو .btn-sm داخل صفوف الجداول المدمجة، سيعمل المشغل المنفرد والمنقسم بالتناسق ذاته. كما يوفّر الإطار الكلاس .dropdown-menu-dark لمنح القائمة خلفية داكنة متباينة تتناغم مع الأشرطة الداكنة.
ألغى Bootstrap 5 الكلاسين الفيزيائيين القديمين dropright وdropleft واستبدلهما بالاتجاهات المنطقية الداعمة للعربية: استخدم .dropup لفتح القائمة للأعلى (أو .dropup-center لتوسيطها أعلى الزر)، و.dropend لفتحها باتجاه نهاية السطر، و.dropstart لفتحها باتجاه بداية السطر.
لتنظيم القوائم الغنية بصرياً ودلالياً، يوفّر بوتستراب ثلاثة عناصر مساعدة داخل .dropdown-menu: عنوان المجموعة <h6 class="dropdown-header"> لتصنيف الأوامر، والخط الفاصل <hr class="dropdown-divider"> لعزل الإجراءات الحساسة كحذف العنصر أو تسجيل الخروج، والنص الوصفي الثابت .dropdown-item-text لعرض البريد الإلكتروني أو الرصيد الحالي دون استجابة للنقر.
جرّب جميع أنماط القوائم واتجاهاتها ومحتوياتها في المختبر التفاعلي الحي:
عندما تضع حقول تصفية أو مربعات اختيار داخل القائمة المنسدلة، لا تريد أن تُغلق القائمة فور نقرة المستخدم الأولى بالداخل! هنا تبرز قوة السمة data-bs-auto-close التي تقبل أربع قيم دقيقة: true (الافتراضي: تُغلق بأي نقرة)، وoutside (تُغلق فقط عند النقر خارج القائمة)، وinside (تُغلق عند النقر بالداخل فقط)، وfalse (لا تُغلق إلا بزر المشغل أو برمجياً).
وللتحكم البرمجي الكامل في جافاسكريبت القياسية، استدعِ bootstrap.Dropdown.getOrCreateInstance(toggleBtn) لتنفيذ دوال .show() و.hide() و.update() مع الاستماع لأحداث shown.bs.dropdown وhidden.bs.dropdown.
<div class="dropdown d-inline-block">
<button id="fltBtn" type="button"
class="btn btn-primary dropdown-toggle"
data-bs-toggle="dropdown"
data-bs-auto-close="outside">
Clickable Inside</button>
<ul class="dropdown-menu p-2">
<li><span class="dropdown-item-text">Stay open</span></li>
</ul>
</div>
مرجع كلاسات وسمات مكوّن Dropdowns
| الكلاس / السمة | العنصر المستهدف | الوظيفة القياسية في Bootstrap 5.3 |
|---|---|---|
.dropdown-toggle | زر الفتح | ينسق زر المشغل ويرسم سهم القائمة المنسدلة التلقائي. |
.dropdown-toggle-split | زر السهم المنقسم | يضبط حشو زر السهم المنفصل داخل .btn-group. |
.dropup / .dropend / .dropstart | الحاوية الأب | توجّه فتح القائمة للأعلى أو للنهاية أو للبداية منطقياً. |
.dropdown-menu-end | قائمة .dropdown-menu | تحاذي القائمة مع الحافة النهائية للزر بدلاً من البداية. |
data-bs-auto-close | زر .dropdown-toggle | تحدد متى تُغلق القائمة تلقائياً (true أو outside أو inside أو false). |
ملخص الدرس
حصاد الدرسمراجعة مركّزة لأهم المفاهيم والقواعد الهندسية التي أتقنتها في هذا الدرس قبل التطبيق العملي
ماذا تعلّمت في هذا الدرس؟
تعرّفت في هذا الدرس على بناء القوائم المنسدلة عبر Popper، وتصميم الأزرار المنقسمة .dropdown-toggle-split، والاتجاهات المنطقية .dropend و.dropstart، والمحاذاة والعناوين والفواصل، والتحكم بالإغلاق التلقائي عبر data-bs-auto-close وكائن bootstrap.Dropdown. الخطوة التالية: انتقل الآن إلى الدرس التالي لإتقان مكوّن اللوحات الجانبية المنزلقة Offcanvas وبناء الأدراج والقوائم المتجاوبة.
سجّل الدخول لحفظ تقدمك
تابع إنجاز المواضيع والمصطلحات والمهام، وكمّل من آخر خطوة على أي جهاز.
المصطلحات4
راجع المعنى، اشرحه لنفسك، ثم علّم البطاقة كمفهومة.
- 01 Popper Positioning Engine محرك التموضع الذكي Popper
- المكتبة المدمجة داخل حزمة بوتستراب المسؤولة عن حساب إحداثيات القوائم المنسدلة ومنع خروجها عن حدود الشاشة.
- للمراجعة
- 02 Split Button Dropdown القائمة ذات الزر المنقسم
- مجموعة أزرار تفصل زر التنفيذ المباشر عن زر السهم المخصص لفتح الخيارات الإضافية.
- للمراجعة
- 03 Logical Drop Directions اتجاهات الفتح المنطقية
- كلاسات الاتجاه في بوتستراب 5 التي تتكيف تلقائياً مع اتجاه الصفحة العربية أو الإنجليزية بدلاً من الكلاسات الفيزيائية الملغاة.
- للمراجعة
- 04 Auto-Close Mode نمط الإغلاق التلقائي
- سمة تحدد ما إذا كانت القائمة تغلق عند النقر داخلها أو خارجها أو تبقى مفتوحة للتحكم اليدوي.
- للمراجعة
لا توجد بطاقات تطابق البحث والتصفية.
اقرأ البطاقات بحرية. سجّل الدخول لحفظ تقدم مراجعتك.
الاختصارات4
راجع المعنى، اشرحه لنفسك، ثم علّم البطاقة كمفهومة.
- 01 RTL RTL
- Right-to-Left
- اتجاه الواجهة العربية الذي تنعكس فيه كلاسات dropend وdropdown-menu-end تلقائياً.
- للمراجعة
- 02 LTR LTR
- Left-to-Right
- اتجاه الواجهة الإنجليزية القياسي لحساب البداية والنهاية المنطقية.
- للمراجعة
- 03 ARIA ARIA
- Accessible Rich Internet Applications
- سمات الإتاحة التي تعلن حالة فتح القائمة والعنصر النشط لمستخدمي التقنيات المساعدة.
- للمراجعة
- 04 UI UI
- User Interface
- الطبقة المرئية للتطبيق التي تُنظَّم أوامرها الثانوية داخل القوائم السياقية.
- للمراجعة
لا توجد بطاقات تطابق البحث والتصفية.
اقرأ البطاقات بحرية. سجّل الدخول لحفظ تقدم مراجعتك.
مهامك قبل الاختبار
خطوة صغيرة كل مرة. وإنجاز تقدر ترجع له.
-
أنشئ مجموعة btn-group تضم زر إجراء رئيسي وزر سهم منقسم بكلاس dropdown-toggle-split بداخله عنصر visually-hidden، يفتح قائمة تحتوي خيارين وفاصل dropdown-divider.
-
اضبط زر قائمة منسدلة بسمة data-bs-auto-close="outside" يحتوي مربعي اختيار form-check وزر إتمام يستدعي دالة hide() عبر كائن bootstrap.Dropdown.
تأشير المهمة إقرار منك بإتمامها، وليس تصحيحًا آليًا للكود. يُحفظ تقدمك في حسابك.
اختبر فهمك.
ووصلها للإتقان.
كل سؤال خطوة لقدّام. اختار، اكتب كود، وشوف نتيجتك فورًا.
أكمل المهام، واجمع كل الإجابات الصحيحة. أقل من 100%؟ راجع وأعد المحاولة.
الأسئلة متاحة للاطلاع. سجّل الدخول للتفاعل وحفظ تقدمك.
لمحة عن التحدي8 أسئلة تنتظرك +
أي ملف سكريبت يجب تضمينه لتعمل القوائم المنسدلة في بوتستراب 5 مع مكتبة Popper مباشرة؟
تتضمن حزمة bootstrap.bundle.min.js مكتبة Popper الضرورية لحساب إحداثيات القوائم المنسدلة.
ما الكلاسان المنطقيان في بوتستراب 5 اللذان حلّا محل كلاسي dropright وdropleft الملغيين؟
استبدل بوتستراب 5 الاتجاهات الفيزيائية بالاتجاهين المنطقيين dropend وdropstart لدعم العربية والإنجليزية تلقائياً.
ما القيمة الصحيحة لسمة data-bs-auto-close لإبقاء القائمة مفتوحة عند النقر بداخلها وإغلاقها فقط عند النقر خارجها؟
تعني القيمة outside أن الإغلاق التلقائي يحدث عند النقر خارج حدود القائمة فقط.
ما الكلاس الذي يحاذي القائمة المنسدلة مع الحافة النهائية للزر بدلاً من حافة البداية؟
يستخدم بوتستراب 5 كلاس dropdown-menu-end لمحاذاة القائمة مع نهاية الزر منطقياً.
في الأزرار المنقسمة يحمل زر السهم كلاس dropdown-toggle-split ويجب تزويده بنص مخفي عبر visually-hidden لقارئات الشاشة.
لأن زر السهم لا يحوي نصاً مرئياً، يضمن وجود visually-hidden قراءة وظيفته بوضوح للمكفوفين.
ما الكلاس المخصص لعرض سطر نصي معلوماتي غير تفاعلي بنفس حشو عناصر القائمة المنسدلة؟
يمنح كلاس dropdown-item-text النص الثابت نفس الهوامش الداخلية لعناصر القائمة دون جعله قابلاً للنقر.
تكفي إضافة كلاس disabled على عنصر القائمة لمنع المستخدم غير المصرح له أمنياً من استدعاء العملية على الخادم.
التعطيل في المتصفح بصري وتفاعلي فقط، ولا بد من فحص الصلاحيات برمجياً على الخادم دائماً.
يمكن للمستخدم التنقل بين عناصر القائمة المنسدلة بسهمي الأعلى والأسفل وإغلاقها بمفتاح Escape.
يدعم مكوّن Dropdown اختصارات لوحة المفاتيح القياسية للتنقل والإغلاق وإعادة التركيز للزر.