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

شريط التنقل Navbar في بوتستراب 5Bootstrap 5 Navbar

ابنِ أشرطة التنقل المتجاوبة في بوتستراب 5.3 مع تنسيق الشعار وحقول البحث والوضع الداكن بسمة data-bs-theme="dark" وقوائم الهاتف المطوية ودرج Offcanvas.
أقسام الدرس
7
الأمثلة
4
اللغة
العربية
تاريخ النشر
غير محدد
المشاهدات
2
محتوى الدرس
في هذا الدرس 7تصفّح المواضيع

يضطلع الشريط العلوي الرئيسي في تطبيقات الويب الحديثة بمهمة مزدوجة: جمع شعار الموقع والروابط والقوائم المنسدلة وحقل البحث في سطر متناسق على الشاشات العريضة، وطيّها بأناقة على شاشات الهواتف. يتكفل مكوّن .navbar في بوتستراب 5 بهذه الهندسة المتجاوبة اعتماداً على الصندوق المرن.

يتألف كل شريط متجاوب من ثلاث طبقات متداخلة: وسم دلالي خارجي <nav class="navbar navbar-expand-lg bg-body-tertiary">، يليه غلاف داخلي .container أو .container-fluid لضبط الهوامش الجانبية، ثم عناصر الهوية والروابط بالداخل؛ حيث يحدد .navbar-expand-lg نقطة التوقف 992px لفرد القائمة أفقياً.

HTML
<nav class="navbar navbar-expand-lg bg-body-tertiary">
  <div class="container-fluid">
    <a class="navbar-brand fw-bold" href="#">CloseTag</a>
    <ul class="navbar-nav me-auto">
      <li class="nav-item">
        <a class="nav-link active" href="#">Courses</a>
      </li>
    </ul>
  </div>
</nav>

كانت الإصدارات السابقة تتطلب إرفاق كلاس خاص لتلوين نصوص الشريط الداكن، أما في بوتستراب 5.3 فقد أُحيل الكلاس القديم للتقاعد وحلّت محله السمة الموحدة الحديثة data-bs-theme="dark".

بمجرد وضع data-bs-theme="dark" على شريط يحمل خلفية داكنة مثل .bg-dark أو .bg-primary، تتحول نصوص الشعار والروابط وأيقونة زر الهاتف وحتى القوائم المنسدلة بداخله تلقائياً إلى تباين فاتح واضح.

مخطط تشريحي لشريط التنقل المتجاوب في بوتستراب 5.3 يوضح حاوية التوسع والشعار والطي وسمة الثيم الداكن

تحت نقطة التوقف المحددة، يخفي الإطار حاوية .collapse.navbar-collapse ويُظهر زر القائمة الثلاثية .navbar-toggler تلقائياً. ويتم ربطهما معاً تصريحياً دون كتابة سطر جافاسكريبت واحد:

  • إسناد data-bs-toggle="collapse" وdata-bs-target="#mainNav" إلى الزر <button class="navbar-toggler" type="button">.
  • إضافة ثلاثية الإتاحة aria-controls="mainNav" وaria-expanded="false" وaria-label="Toggle navigation" لأن أيقونة الخطوط الثلاثية خالية من النص المقروء.
HTML
<button class="navbar-toggler" type="button"
  data-bs-toggle="collapse" data-bs-target="#mainNav"
  aria-controls="mainNav" aria-expanded="false"
  aria-label="Toggle navigation">
  <span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="mainNav">
  <ul class="navbar-nav me-auto">...</ul>
</div>

بدلاً من دفع محتوى الصفحة للأسفل عند فتح قائمة الهاتف التقليدية، تفضل تطبيقات الويب العصرية إظهار درج جانبي منزلق مع طبقة تعتيم خلفية؛ ويدعم بوتستراب 5 دمج مكوّن .offcanvas مباشرةً داخل شريط التنقل.

وجّه زر الهاتف عبر data-bs-toggle="offcanvas" نحو data-bs-target="#navDrawer"، وضع الروابط داخل حاوية <div class="offcanvas offcanvas-end" tabindex="-1" id="navDrawer"> مزودة برأس وزر إغلاق وجسم. ومع وجود .navbar-expand-lg يعمل الدرج كقائمة منزلقة على الجوال ثم يندمج كصف أفقي طبيعي على الحاسوب تلقائياً.

HTML
<nav class="navbar bg-dark" data-bs-theme="dark">
  <div class="container-fluid">
    <a class="navbar-brand" href="#">CloudConsole</a>
    <button class="navbar-toggler" type="button"
      data-bs-toggle="offcanvas" data-bs-target="#navDrawer"
      aria-controls="navDrawer" aria-label="Open menu">
      <span class="navbar-toggler-icon"></span>
    </button>
  </div>
</nav>

يتيح بوتستراب ثلاث أدوات تموضع لإبقاء شريط التنقل في متناول اليد أثناء التمرير الطويل، مع فرق جوهري في السلوك التخطيطي:

  • الإلصاق الذكي .sticky-top — يعمل بخاصية position: sticky فيحتفظ بحيزه الطبيعي في تدفق الصفحة ولا يحجب السطر الأول من المحتوى مطلقاً.
  • التثبيت المطلق .fixed-top و.fixed-bottom — ينزع الشريط من التدفق الطبيعي للصفحة، لذا يلزم تعويض ارتفاعه بإضافة حشو مقابل على body مثل padding-top: 4.5rem حتى لا يختفي المحتوى خلفه.
الكلاس أو السمةالوظيفة في الشريطملاحظة هندسية مهمة
.navbar-expand-{sm|md|lg|xl|xxl}تحديد نقطة فرد القائمة أفقياًحذفه يُبقي زر القائمة مطوياً على كل الشاشات
.navbar-brandتنسيق اسم الموقع أو الشعارحدد width وheight لصورة الشعار دائماً
.navbar-togglerزر فتح القائمة على الهواتفيتطلب سمة صوتية aria-label واضحة
.collapse.navbar-collapseحاوية الطي العمودي التقليديةترتبط بالزر عبر تطابق معرّف id
.offcanvas.offcanvas-endدرج تنقل جانبي منزلق للهاتفيتحول لصف أفقي تلقائياً فوق نقطة التوسع
data-bs-theme="dark"تفعيل تباين النص الداكن في BS 5.3البديل الرسمي للكلاس المتقاعد .navbar-dark
.sticky-top مقابل .fixed-topتثبيت الشريط أعلى النافذةيستلزم .fixed-top حشواً تعويضياً للجسم
خلاصة المعرفة ومحطة الانتقال

ملخص الدرس

حصاد الدرس

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

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

أتقنت في هذا الدرس بناء أشرطة التنقل المتجاوبة في بوتستراب 5.3، وتنسيق الشعار وحقول البحث والهوامش المنطقية، وتطبيق الوضع الداكن بسمة data-bs-theme="dark"، ودمج القوائم المطوية ودرج Offcanvas وأوضاع التثبيت. الخطوة التالية: انتقل الآن إلى درس «تتبع التمرير Scrollspy في بوتستراب 5» لربط أشرطة التنقل والفهارس بأقسام الصفحة تلقائياً أثناء التمرير.

مشاركة

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

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

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

المصطلحات4

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

0 / 4 مفهومةأول بطاقة، أول خطوة
01 Responsive Expand Breakpoint (.navbar-expand-*) نقطة التوسع المتجاوب للشريط
الكلاس المحدد لعرض الشاشة الذي تتحول عنده قائمة الهاتف المطوية إلى شريط أفقي مفتوح.
للمراجعة
02 Offcanvas Navbar Drawer درج التنقل الجانبي المنزلق
لوحة تنقل جانبية منزلقة للهواتف تندمج داخل الشريط وتتحول تلقائياً لروابط أفقية على الشاشات الكبيرة.
للمراجعة
03 Sticky Positioning (.sticky-top) الإلصاق العلوي الذكي
أداة تموضع تُبقي الشريط في حيزه الطبيعي ثم تثبته أعلى النافذة فور بدء التمرير دون حجب المحتوى.
للمراجعة
04 Navbar Scroll Cap (.navbar-nav-scroll) تقييد ارتفاع القائمة المطوية
كلاس يقيد أقصى ارتفاع للقائمة المطوية على شاشات الهاتف عبر متغير --bs-scroll-height مع تمرير داخلي.
للمراجعة

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

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

الاختصارات4

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

0 / 4 مفهومةأول بطاقة، أول خطوة
01 CLS الانزياح التراكمي للتخطيط
Cumulative Layout Shift
مؤشر استقرار بصري نحميه بتحديد عرض وارتفاع صريحين لصورة الشعار داخل الشريط العلوي.
للمراجعة
02 SVG الرسوميات المتجهة القابلة للتحجيم
Scalable Vector Graphics
صيغة رسومية متجهة تُستخدم لشعارات المواقع الحادة ولأيقونة زر القائمة الثلاثية في بوتستراب.
للمراجعة
03 XSS البرمجة العابرة للمواقع
Cross-Site Scripting
ثغرة حقن سكربتات نمنعها بتعقيم مدخلات حقل البحث في الشريط وعدم طباعتها كشيفرة خام.
للمراجعة
04 LTR الاتجاه من اليسار إلى اليمين
Left-to-Right
اتجاه الواجهة الإنجليزية الذي يدفع فيه الكلاس المنطقي .me-auto العناصر اللاحقة نحو اليمين.
للمراجعة

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

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

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

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

0/2مهام منجزة
  1. أنشئ شريط .navbar.navbar-expand-lg.bg-dark يحمل data-bs-theme="dark" وشعار .navbar-brand وزر هاتف متاح صوتياً وثلاثة روابط مع .me-auto وحقل بحث متناسق.

  2. استبدل حاوية الطي التقليدية بدرج .offcanvas.offcanvas-end مربوط بسمة data-bs-toggle="offcanvas" واختبر سلوكه تحت وفوق عرض 992px.

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

مساحة التحدي

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

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

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

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

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

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

ما البديل الرسمي الحديث في بوتستراب 5.3 للكلاس المتقاعد .navbar-dark عند تلوين شريط ذي خلفية داكنة؟

02

بدءاً من أي عرض شاشة ينفرد شريط يحمل الكلاس .navbar-expand-lg إلى الوضع الأفقي الكامل؟

03

يُخرج الكلاس .fixed-top شريط التنقل من التدفق الطبيعي للصفحة، مما يستلزم إضافة padding-top على الجسم لعدم تغطية بداية المحتوى.

04

ما كلاس الهامش المنطقي في بوتستراب 5 الذي حل محل .mr-auto لدفع العناصر التالية لقائمة الروابط نحو نهاية السطر؟

05

لماذا يجب تزويد الزر <button class="navbar-toggler"> بسمة aria-label دائماً؟

06

ما قيمة السمة data-bs-toggle على زر الهاتف لفتح درج .offcanvas منزلق بدلاً من الطي العمودي؟

07

إضافة الكلاس .navbar-nav-scroll إلى قائمة الروابط تمنع فيضان القوائم الطويلة خارج حدود شاشة الهاتف القصيرة.

08

ما خاصية CSS التي تمنع اختفاء عناوين الأقسام خلف شريط .sticky-top عند النقر على روابط القفز الداخلي؟