انتقل إلى محتوى الدرس
الدرس 32
دورة بوتستراب 5

قوائم الاختيار المنسدلة في بوتستراب 5Bootstrap 5 Select Menus

نسّق قوائم الاختيار المنسدلة عبر المتصفحات في بوتستراب 5 باستخدام كلاس form-select وأحجامه المختلفة، وفعّل الاختيار المتعدد وحالات التعطيل والتسميات الدلالية المتاحة.
أقسام الدرس
5
الأمثلة
4
اللغة
العربية
تاريخ النشر
غير محدد
المشاهدات
0
محتوى الدرس
في هذا الدرس 5تصفّح المواضيع

يختلف المظهر الافتراضي لعنصر القائمة المنسدلة <select> اختلافاً كبيراً بين أنظمة التشغيل والمتصفحات. في Bootstrap 5، حل الكلاس القياسي .form-select محل كلاس custom-select الملغى من الإصدار الرابع، ليمنح القائمة إطاراً وحشواً مطابقاً تماماً لحقول .form-control مع استبدال سهم المتصفح التقليدي بأيقونة SVG مدمجة عالية الدقة.

يجري هذا التخصيص على الصندوق المبدئي للقائمة فقط، بينما تبقى قائمة عناصر <option> المنبثقة معتمدة على واجهة نظام التشغيل الأصيلة لضمان سهولة التمرير باللمس على الهواتف الذكية.

HTML
<label for="roleSelect" class="form-label">Team Role</label>
<select class="form-select" id="roleSelect">
  <option selected>Select a role...</option>
  <option value="admin">Administrator</option>
  <option value="editor">Content Editor</option>
  <option value="viewer">Read-Only Auditor</option>
</select>

تماماً كما رأينا في حقول النص والأزرار، تتوفر قوائم الاختيار بثلاث درجات ارتفاع قياسية لتصطف في صف شبكي واحد دون أي تفاوت بصري: أضف الكلاس .form-select-lg بجانب .form-select للنماذج البارزة، أو الكلاس .form-select-sm لأشرطة الفرز واختيار عدد الصفوف في الجداول.

مخطط يوضح تشريح قائمة الاختيار form-select وتدرج أحجامها وانعكاس سهم القائمة تلقائياً في RTL
HTML
<select class="form-select form-select-lg mb-2">
  <option selected>Large select (.form-select-lg)</option>
</select>
<select class="form-select mb-2">
  <option selected>Default select (.form-select)</option>
</select>
<select class="form-select form-select-sm">
  <option selected>Small select (.form-select-sm)</option>
</select>

عندما تود السماح للمستخدم بتحديد أكثر من خيار واحد معاً (كاختيار عدة مهارات أو صلاحيات)، أضف السمة المنطقية multiple إلى وسم <select class="form-select">. يتعرف بوتستراب تلقائياً على وجود السمة multiple أو السمة size (عندما تكون قيمتها أكبر من 1)، فيخفي أيقونة السهم المنسدل ويحول القائمة إلى صندوق تمرير مفتوح يعرض عدة خيارات دفعة واحدة.

HTML
<label for="sk" class="form-label">Tech Stack</label>
<select class="form-select mb-3" id="sk" multiple>
  <option value="html" selected>HTML5</option>
  <option value="bs5">Bootstrap 5</option>
</select>
<select class="form-select" size="3" aria-label="List">
  <option selected>Starter Tier</option>
  <option>Pro Tier</option>
</select>

يمكنك تطبيق السمة disabled على مستويين مختلفين حسب حاجة الواجهة: إما وضعها على وسم <select> الأب لتعطيل القائمة بالكامل ومنحها خلفية رمادية غير قابلة للنقر، وإما وضعها على وسم <option selected disabled value=""> الأول لصنع خيار ترحيبي إرشادي («اختر الدولة...») يراه المستخدم في البداية لكنه لا يستطيع إعادة اختياره كقيمة فعلية.

قارن الحالات الأربع مباشرة في المختبر التفاعلي التالي:

لكي تجتاز قوائم الاختيار معايير إمكانية الوصول العالمية، يجب أن ترتبط كل قائمة اختيار باسم دلالي واضح: ففي النماذج العادية نربطها بعنصر <label class="form-label"> مرئي عبر السمتين for وid، أما في أشرطة الفرز المدمجة التي يغيب عنها نص التسمية المرئي فنضيف السمة aria-label مباشرة إلى وسم <select>.

كما يمكنك تنظيم القوائم الطويلة منطقياً باستخدام وسم التجميع القياسي <optgroup label="..."> الذي يحافظ على تنسيقه النظيف داخل .form-select ويسهّل على قارئات الشاشة إعلان اسم المجموعة الفرعية قبل كل خيار.

HTML
<label for="db" class="form-label">Database Engine</label>
<select class="form-select" id="db">
  <optgroup label="Relational SQL">
    <option value="mysql">MySQL 8</option>
    <option value="pgsql">PostgreSQL 16</option>
  </optgroup>
  <optgroup label="Document &amp; Cache">
    <option value="redis">Redis</option>
  </optgroup>
</select>

يستعرض الجدول المرجعي التالي كافة كلاسات وسمات قوائم الاختيار في Bootstrap 5.3:

الكلاس أو السمةموضع الاستخدامالأثر البصري والوظيفي
.form-selectعنصر <select>توحيد إطار القائمة وحشوها وإضافة سهم SVG متكيف مع اتجاه الصفحة
.form-select-lgعنصر <select>تكبير حجم الخط والارتفاع ليطابق حقول .form-control-lg
.form-select-smعنصر <select>تصغير أبعاد القائمة لأشرطة التصفية والجداول المضغوطة
multipleعنصر <select>تفعيل تحديد عدة خيارات معاً وإخفاء سهم القائمة المنسدلة تلقائياً
size="N"عنصر <select>عرض عدد N من السطور المرئية المفتوحة داخل صندوق التمرير
disabled<select> أو <option>تعطيل القائمة كاملة أو منع إعادة اختيار خيار الإرشاد الافتراضي الأول
خلاصة المعرفة ومحطة الانتقال

ملخص الدرس

حصاد الدرس

مراجعة مركّزة لأهم المفاهيم والقواعد الهندسية التي أتقنتها في هذا الدرس قبل التطبيق العملي

ماذا تعلّمت في هذا الدرس؟

أتقنت في هذا الدرس توحيد مظهر قوائم الاختيار عبر كلاس .form-select بديلاً عن الكلاسات القديمة، وضبط أحجامها، وتفعيل الاختيار المتعدد والصفوف المرئية، وإدارة التعطيل الكلي والجزئي والتسميات الدلالية مع مجموعات <optgroup>. الخطوة التالية: انتقل الآن إلى درس «مربعات الاختيار والمفاتيح في بوتستراب 5» لبناء خيارات التحديد وأزرار الراديو والمفاتيح المنزلقة العصرية.

مشاركة

هل كان هذا الدرس مفيدًا؟

جارٍ تحميل الآراء…

ابنِ لغتك البرمجية

المصطلحات4

راجع المعنى، اشرحه لنفسك، ثم علّم البطاقة كمفهومة.

0 / 4 مفهومةأول بطاقة، أول خطوة
01 Form Select Class كلاس قائمة الاختيار
الكلاس القياسي في بوتستراب 5 لتوحيد مظهر عنصر <select> عبر المتصفحات وإضافة سهم متجهي متناسق.
للمراجعة
02 Option Group مجموعة الخيارات الدلالية
وسم HTML قياسي يُستخدم داخل <select> لتصنيف الخيارات المتقاربة تحت عنوان فرعي واضح.
للمراجعة
03 Placeholder Prompt Option خيار الإرشاد التمهيدي
الخيار الأول المزود بسمتَي selected وdisabled وقيمة فارغة لحث المستخدم على اختيار قيمة فعلية.
للمراجعة
04 Multi-Select List Box صندوق الاختيار المتعدد
قائمة اختيار تحمل سمة multiple فتعرض عدة صفوف مفتوحة بدون سهم منسدل لتحديد أكثر من عنصر.
للمراجعة

اقرأ البطاقات بحرية. سجّل الدخول لحفظ تقدم مراجعتك.

حروف قليلة. معنى كامل.

الاختصارات4

راجع المعنى، اشرحه لنفسك، ثم علّم البطاقة كمفهومة.

0 / 4 مفهومةأول بطاقة، أول خطوة
01 SVG SVG
Scalable Vector Graphics
الرسوميات المتجهية القابلة للتحجيم — تُستخدم كصورة خلفية متجهية مدمجة داخل كلاس .form-select لرسم سهم حاد الوضوح على جميع الشاشات.
للمراجعة
02 OS OS
Operating System
نظام التشغيل — يتولى رسم نافذة الخيارات المفتوحة بواجهته الأصلية لضمان أفضل استجابة للمس على الهواتف والحواسيب.
للمراجعة
03 RTL RTL
Right-to-Left
الاتجاه من اليمين إلى اليسار — ينقل سهم القائمة المنسدلة إلى الطرف الأيسر تلقائياً في النسخة العربية لملف بوتستراب.
للمراجعة
04 WCAG WCAG
Web Content Accessibility Guidelines
إرشادات إتاحة محتوى الويب — توجب تزويد كل عنصر <select> بتسمية <label> مرتبطة أو سمة aria-label واضحة.
للمراجعة

اقرأ البطاقات بحرية. سجّل الدخول لحفظ تقدم مراجعتك.

من الفهم للتطبيق

مهامك قبل الاختبار

خطوة صغيرة كل مرة. وإنجاز تقدر ترجع له.

0/2مهام منجزة
  1. اربط عنصر .form-label بقائمة <select class="form-select"> يبدأ خيارها الأول بالسمات value="" وselected وdisabled تليه ثلاثة خيارات دول صالحة.

  2. أنشئ قائمة .form-select مقسمة بمجموعتَي <optgroup>، وقائمة ثانية مصغرة .form-select-sm مزودة بسمتَي multiple وsize="4".

تأشير المهمة إقرار منك بإتمامها، وليس تصحيحًا آليًا للكود. يُحفظ تقدمك في حسابك.

مساحة التحدي

اختبر فهمك.
ووصلها للإتقان.

كل سؤال خطوة لقدّام. اختار، اكتب كود، وشوف نتيجتك فورًا.

8أسئلة 2أنواع تحديات 100%هدف الإتقان
تصحيح تلقائي. فرص بلا حدود.

أكمل المهام، واجمع كل الإجابات الصحيحة. أقل من 100%؟ راجع وأعد المحاولة.

الأسئلة متاحة للاطلاع. سجّل الدخول للتفاعل وحفظ تقدمك.

لمحة عن التحدي8 أسئلة تنتظرك
01

ما الكلاس الحديث في بوتستراب 5 الذي حل محل الكلاس الملغى .custom-select من الإصدار الرابع؟

02

ينسّق كلاس .form-select الصندوق الخارجي للقائمة بلغة CSS، بينما يظل عرض نافذة خيارات <option> المنبثقة خاضعاً لواجهة نظام التشغيل.

03

ماذا يحدث بصرياً لأيقونة السهم في .form-select عند إضافة سمة multiple إلى عنصر <select>؟

04

ما الكلاسان المخصصان لتكبير أو تصغير قائمة .form-select لتطابق أحجام الحقول المجاورة؟

05

إضافة السمة size="4" بمفردها دون سمة multiple تتيح للمستخدم تحديد أربعة خيارات معاً في وقت واحد.

06

كيف تنشئ خياراً تمهيدياً إرشادياً في أعلى القائمة لا يمكن إعادة تحديده كقيمة صالحة؟

07

عند وضع قائمة .form-select مضغوطة في شريط أدوات بدون عنصر <label> مرئي، ما السمة الواجب إضافتها للإتاحة؟

08

أين يضع ملف bootstrap.rtl.min.css أيقونة السهم داخل قائمة .form-select في الواجهة العربية؟