bootstrap

navbar در Bootstrap

navbar در Bootstrap چیزی فراتر از نوارهای افقی ساده در بالای وب‌سایت شما هستند؛ آن‌ها ستون فقرات ناوبری سایت و ستاره راهنمایی هستند که به کاربران کمک می‌کنند مسیر خود را پیدا کرده و به بخش‌های مختلف محتوای شما دسترسی داشته باشند. این ناوبارها برای پاسخگویی، انعطاف‌پذیری و داشتن قابلیت‌های متعدد طراحی شده‌اند و تجربه‌ای روان در تمامی اندازه‌های صفحه‌نمایش ارائه می‌دهند. این راهنمای جامع به بررسی عمیق ساختار ناوبارهای Bootstrap، گزینه‌های سفارشی‌سازی، رفتارهای واکنش‌گرا، ویژگی‌های پیشرفته، ملاحظات دسترسی‌پذیری و استراتژی‌های خلاقانه پیاده‌سازی فراتر از فهرست‌های ساده پیوندها می‌پردازد.

ساختار پایه ناوبار(.navbar)

ساختار اصلی یکnavbar درBootstrap شامل چند عنصر HTML کلیدی است:

  • .navbar: ظرف اصلی نوار ناوبری. معمولاً کلاس‌های رنگ پس‌زمینه (مانند .bg-light, .bg-dark, .bg-primary) و کلاس‌های موقعیتی (مانند .fixed-top, .sticky-top) به این عنصر اعمال می‌شود.
  • .container یا .container-fluid: برای کنترل عرض و واکنش‌گرایی محتویات داخلی ناوبار. کلاس .container نقاط شکست ثابت دارد و .container-fluid تمام عرض صفحه را می‌گیرد.
  • .navbar-brand: برای نمایش لوگو یا عنوان اصلی سایت/اپلیکیشن استفاده می‌شود (معمولاً تگ <a>).
  • .navbar-nav: فهرستی نامرتب از پیوندها (<ul> که شامل .nav-item و لینک‌هایی با کلاس .nav-link هستند).
  • .navbar-toggler: دکمه‌ای برای باز و بسته کردن ناوبار در اندازه‌های کوچک‌تر (موبایل). این دکمه معمولاً شامل data-bs-toggle="collapse" و data-bs-target="#yourNavbarId" است.
  • .collapse.navbar-collapse: بخشی که شامل پیوندها و محتوای دیگر است که در نمایشگرهای کوچک‌تر پنهان و در بزرگ‌ترها نمایش داده می‌شود.

مثال پایه navbar

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Basic Bootstrap Navbar</title>
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet">
</head>
<body>
    <nav class="navbar navbar-expand-lg bg-light">
        <div class="container-fluid">
            <a class="navbar-brand" href="#">Navbar</a>
            <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarNav" aria-controls="navbarNav" aria-expanded="false" aria-label="Toggle navigation">
                <span class="navbar-toggler-icon"></span>
            </button>
            <div class="collapse navbar-collapse" id="navbarNav">
                <ul class="navbar-nav">
                    <li class="nav-item">
                        <a class="nav-link active" aria-current="page" href="#">Home</a>
                    </li>
                    <li class="nav-item">
                        <a class="nav-link" href="#">Features</a>
                    </li>
                    <li class="nav-item">
                        <a class="nav-link" href="#">Pricing</a>
                    </li>
                    <li class="nav-item">
                        <a class="nav-link disabled" aria-disabled="true">Disabled</a>
                    </li>
                </ul>
            </div>
        </div>
    </nav>
    <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js"></script>
</body>
</html>

navbar در Bootstrap

کلاس‌های واکنش‌گرا (.navbar-expand-*)

کلاس .navbar-expand-* مشخص می‌کند ناوبار در چه نقطه‌ای از حالت موبایل (جمع‌شده) به حالت دسکتاپ (باز) تغییر وضعیت دهد. گزینه‌های معمول شامل .navbar-expand-sm, .navbar-expand-md, .navbar-expand-lg, .navbar-expand-xl, .navbar-expand-xxl هستند.

تم‌ها و رنگ‌ها

Bootstrap تم‌های داخلی برای ناوبار ارائه می‌دهد:

  • .navbar-light: برای پس‌زمینه‌های روشن (متن تیره).
  • .navbar-dark: برای پس‌زمینه‌های تیره (متن روشن).
  • .bg-*: کلاس‌های رنگ پس‌زمینه (مثل .bg-primary, .bg-success) را می‌توان روی .navbar اعمال کرد.
<nav class="navbar navbar-expand-lg navbar-dark bg-dark">
    </nav>

<nav class="navbar navbar-expand-lg navbar-light bg-light">
    </nav>

<nav class="navbar navbar-expand-lg navbar-dark bg-primary">
    </nav>
navbar در Bootstrap

موقعیت‌یابی navbar در Bootstrap

  • .fixed-top: ناوبار به بالای صفحه چسبیده و با اسکرول باقی می‌ماند.
  • .fixed-bottom: ناوبار به پایین صفحه می‌چسبد.
  • .sticky-top: ناوبار تا رسیدن به بالای صفحه با اسکرول حرکت کرده و سپس ثابت می‌شود.
<nav class="navbar navbar-expand-lg bg-light fixed-top">
    </nav>

<nav class="navbar navbar-expand-lg bg-light sticky-top">
    </nav>

افزودن محتوای بیشتر

ناوبار می‌تواند شامل موارد بیشتری باشد:

  • فرم‌ها (<form class="d-flex">): برای جستجو یا فرم‌های دیگر.
  • دکمه‌ها (<button class="btn btn-outline-success">): افزودن دکمه‌های فراخوان.
  • متن‌ها (<span> یا <div>): اطلاعات یا توضیحات اضافه.
  • منوهای کشویی (.dropdown): ساخت زیرمنوهای ناوبری.
<nav class="navbar navbar-expand-lg bg-light">
    <div class="container-fluid">
        <a class="navbar-brand" href="#">Navbar</a>
        <div class="collapse navbar-collapse" id="navbarNav">
            <ul class="navbar-nav me-auto mb-2 mb-lg-0">
                <li class="nav-item">
                    <a class="nav-link active" aria-current="page" href="#">Home</a>
                </li>
                <li class="nav-item">
                    <a class="nav-link" href="#">Features</a>
                </li>
                <li class="nav-item dropdown">
                    <a class="nav-link dropdown-toggle" href="#" role="button" data-bs-toggle="dropdown" aria-expanded="false">
                        Dropdown
                    </a>
                    <ul class="dropdown-menu">
                        <li><a class="dropdown-item" href="#">Action</a></li>
                        <li><a class="dropdown-item" href="#">Another action</a></li>
                        <li><hr class="dropdown-divider"></li>
                        <li><a class="dropdown-item" href="#">Something else here</a></li>
                    </ul>
                </li>
                <li class="nav-item">
                    <a class="nav-link disabled" aria-disabled="true">Disabled</a>
                </li>
            </ul>
            <form class="d-flex" role="search">
                <input class="form-control me-2" type="search" placeholder="Search" aria-label="Search">
                <button class="btn btn-outline-success" type="submit">Search</button>
            </form>
        </div>
    </div>
</nav>

کنترل نقاط شکست (Breakpoints)

محتوای داخل .collapse.navbar-collapse در اندازه‌های کوچکتر از breakpoint انتخابی مخفی می‌ماند و در اندازه‌های بزرگ‌تر نمایش داده می‌شود.

ملاحظات دسترسی‌پذیری

  • از تگ <nav> برای مشخص کردن ناوبری استفاده کنید.
  • aria-label: برچسب توصیفی برای ناوبار (مثلاً aria-label="Main navigation").
  • aria-controls, aria-expanded, aria-label برای دکمه‌های toggler ضروری هستند.
  • اطمینان حاصل کنید که تمام لینک‌ها و عناصر قابل تعامل با کلید Tab در دسترس باشند.
  • منوهای کشویی باید با کلیدهای جهت‌دار قابل پیمایش و با Escape قابل بسته شدن باشند.
  • وضعیت فعال با استفاده از .active و aria-current="page" مشخص شود.

پیاده‌سازی‌های خلاقانه

  • ناوبارهای عمودی: با CSS سفارشی می‌توان ناوبار را به نوار کناری تبدیل کرد.
  • ناوبار پایین صفحه: مناسب اپلیکیشن‌های موبایل برای دسترسی سریع.
  • ناوبری چندسطحی: ایجاد منوهای تو در تو با dropdown.
  • ناوبری زمینه‌ای: تغییر محتوای ناوبار با توجه به صفحه فعلی.
  • نوار پیشرفت: استفاده از ناوبار به عنوان نوار پیشرفت در فرم‌های چندمرحله‌ای.
  • نوار ابزار: گنجاندن کنترل‌ها و دکمه‌ها در ناوبار.

بهترین روش‌ها

  • مختصر و مفید باشید: ناوبار را با آیتم‌های زیاد شلوغ نکنید.
  • لینک‌های مهم را در اولویت قرار دهید.
  • ثبات در طراحی: از سبک یکنواخت در تمام صفحات استفاده کنید.
  • برچسب‌گذاری واضح: برای لینک‌ها از متن‌های واضح استفاده کنید.
  • تست واکنش‌گرایی: ناوبار را در اندازه‌های مختلف نمایشگر آزمایش کنید.
  • اولویت به دسترسی‌پذیری: همیشه ناوبار را برای کاربران دارای معلولیت قابل استفاده نگه دارید.

نتیجه‌گیری

navbar در Bootstrap بخش مهمی از طراحی مدرن وب هستند. با درک ساختار، استفاده از گزینه‌های سفارشی‌سازی و توجه به دسترسی‌پذیری، می‌توانید تجربه‌ای کاربرپسند، روان و مؤثر ایجاد کنید که مخاطب را به‌خوبی راهنمایی کند. از قدرت این عنصر کلیدی استفاده کنید و آن را به بخش ضروری و کاربردی معماری وب‌سایت خود تبدیل نمایید.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *