سلام با آموزش Bootstrap 4 در خدمت شما هستیم در قسمت قبل با مفهوم زیر آشنا شدیم
حال با ادامه آموزش بوت استرپ 4 از دوره آموزش طراحی سایت همراه باشید:
منوی Navigation Bar یک منوی مسیر دهی و دسترسی به قسمت های مختلف وب سایت است که در قسمت بالایی صفحه (Header) قرار می گیرد. عکس زیر یک Navigation Bar ساده را نشان می دهد :
در بوت استرپ 4، منوی Navigation Bar به طور اتوماتیک بر حسب سایز صفحه نمایش دهنده سایت، به طور تمام عرض یا کوچک شده (collapse) نشان داده می شود و کاملا Responsive است.
منوی Navigation Bar استاندارد در بوت استرپ 4 به وسیله یک تگ nav با کلاس navbar که یک کلاس ریسپانسیو قابل جمع شدن یا Collapse به دنبال آن است (کلاس .navbar-expand-xl | lg | md | sm) ایجاد می شود.
برای اضافه کردن لینک ها و آیتم ها در Navigation Bar از یک المنت <ul> با کلاس Class=”navbar-nav” استفاده می شود. سپس به ازای هر آیتم در تگ <ul> یک تگ <li> با کلاس nav-item. که معمولا یک لینک با تگ <a> و کلاس nav-link. درون آن است، تعریف می شود.
مثال عملی : در کد مثال عملی زیر، یک Navigation Bar ساده که دارای 3 لینک است را ایجاد کرده ایم :
مثال 1
<!-- A grey horizontal navbar that becomes vertical on small screens -->
<nav class="navbar navbar-expand-sm bg-light">
<!-- Links -->
<ul class="navbar-nav">
<li class="nav-item">
<a class="nav-link" href="#">Link 1</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">Link 2</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">Link 3</a>
</li>
</ul>
</nav>
اگر کلاس .navbar-expand-x||lg|md|sm را از کد navbar حذف کنید، بوت استرپ 4 منوی navbar را به صورت عمودی نشان می دهد، همانند مثال عملی زیر:
<!-- A vertical navbar -->
<nav class="navbar bg-light">
<!-- Links -->
<ul class="navbar-nav">
<li class="nav-item">
<a class="nav-link" href="#">Link 1</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">Link 2</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">Link 3</a>
</li>
</ul>
</nav>
در صورت استفاده از کلاس justify-content-center.، بوت استرپ 4 منوی Navigation Bar را به صورت وسط چین نشان می دهد.
مثال عملی : در کد مثال عملی زیر، یک navbar وسط چین ایجاد کرده ایم.
این منو در صفحه نمایش های بسیار بزرگ (extra large)، بزرگ (large) و متوسط (medium) به صورت وسط چین نشان داده می شود.
اما به دلیل کاربرد کلاس navbar-expand-sm در آن، در صفحه نمایش های کوچک (small) به صورت عمودی و چپ چین نشان داده خواهد شد :
<nav class="navbar navbar-expand-sm bg-light justify-content-center">
...
</nav>
می توانید از هر یک از کلاس های متنی رنگی ویژه بوت استرپ 4، برای تغییر رنگ پس زمینه navbar استفاده نمایید، این کلاس ها عبارتند از bg-primary، bg-success، bg-info، bg-warning، bg-danger، bg-secondary، bg-dark و bg-light.
نکته :
اگر از کلاس navbar-dark در منوی navbar استفاده کنید، رنگ متن لینک های منو به رنگ سفید تبدیل می شود و برعکس با کاربرد کلاس navbar-light، رنگ نوشته ها به رنگ تیره درخواهد آمد.
مثال عملی : در کد مثال عملی زیر، 3 مدل مختلف منوی navbar با رنگ و تم مختلف را ایجاد کرده ایم :
مثال 4
<!-- Grey with black text -->
<nav class="navbar navbar-expand-sm bg-light navbar-light">
<ul class="navbar-nav">
<li class="nav-item active">
<a class="nav-link" href="#">Active</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">Link</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">Link</a>
</li>
<li class="nav-item">
<a class="nav-link disabled" href="#">Disabled</a>
</li>
</ul>
</nav>
<!-- Black with white text -->
<nav class="navbar navbar-expand-sm bg-dark navbar-dark">...</nav>
<!-- Blue with white text -->
<nav class="navbar navbar-expand-sm bg-primary navbar-dark">...</nav>
راهنمایی : نحوه ایجاد لینک فعال/غیر فعال در navbar.
اگر کلاس active را به المنت <a> یک لینک در منوی navbar بدهید، برنامه آن لینک را به صورت فعال و متمایز نشان می دهد. همچنین با کاربرد کلاس disabled، لینک به صورت غیر فعال و غیر قابل کلیک درخواهد آمد.
به وسیله کلاس navbar-brand و کاربرد آن در یک تگ لینک مثل <a> می توانید عکس برند یا نوشته لوگوی سایت را در منوی Navigation Bar قرار دهید.
مثال 1: در مثال زیر، عبارت Logo را به صورت برجسته به عنوان آرم سایت در منو navbar قرار داده ایم :
مثال 5
<nav class="navbar navbar-expand-sm bg-dark navbar-dark">
<a class="navbar-brand" href="#">Logo</a>
...
</nav>
می توایند از عکس نیز در بخش لوگو منوی navbar استفاده کنید. در صورت استفاده از عکس و کلاس navbar-brand، بوت استرپ 4 به صورت خودکار اندازه عکس را برای نمایش در صفحه های مختلف تنظیم می کند. در کد مثال عملی زیر، از یک عکس به عنوان لوگو در منوی navbar استفاده کرده ایم :
<p><a class="navbar-brand" href="#"><img alt="Logo" src="bird.jpg" style="width:40px"> </a> ...</p>
اکثر مواقع، به خصوص در صفحه نمایش های کوچک، ممکن است بخواهید که منوی Navigation Bar و لینک های آن را کوچک یا مخفی کرده و به جای آن دکمه ای قرار دهید تا کاربر بر روی آن، منو را باز کرده و محتویات ش را مشاهده کند.
بای ایجاد یک منوی navbar Collapse که قابل باز و بسته شدن و مخفی شدن است، از یک دکمه button با کلاس class=”navbar-toggler” و خواص data-toggle=”collapse” و "id منوی data-target=”nav استفاده می شود.
سپس تمامی محتویات منوی navbar شامل لینک ها، متن ها و ... را در یک المنت div با کلاس class=”collapse navbar-collapse” که خاصیت id آن معادل خاصیت data-target دکمه button ساخته شده است، قرار دهید.
حال در صورت کلیک کاربر بر روی دکمه Button، منوی navbar باز و بسته شده و محتویات آن مخفی و نمایان می شود، همانند کد مثال عملی زیر:
<nav class="navbar navbar-expand-md bg-dark navbar-dark">
<!-- Brand -->
<a class="navbar-brand" href="#">Navbar</a>
<!-- Toggler/collapsibe Button -->
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#collapsibleNavbar">
<span class="navbar-toggler-icon"></span>
</button>
<!-- Navbar links -->
<div class="collapse navbar-collapse" id="collapsibleNavbar">
<ul class="navbar-nav">
<li class="nav-item">
<a class="nav-link" href="#">Link</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">Link</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">Link</a>
</li>
</ul>
</div>
</nav>
راهنمایی :
راهنمایی : اگر در مثال فوق، کلاس navbar-expand-md. را از تگ اصلی nav حذف کنید، منو در تمامی اندازه های صفحه نمایش و همیشه به صورت بسته یا collapse نشان داده خواهد شد.
از منوهای کرکره ای dropdown نیز می توانید به عنوان آیتم های منوی navbar استفاده کنید. برای نمونه، در کد مثال عملی زیر، در آیتم سوم منو از یک dropdown برای نمایش آیتم ها، استفاده کرده ایم :
مثال 8
<nav class="navbar navbar-expand-sm bg-dark navbar-dark">
<!-- Brand -->
<a class="navbar-brand" href="#">Logo</a>
<!-- Links -->
<ul class="navbar-nav">
<li class="nav-item">
<a class="nav-link" href="#">Link 1</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">Link 2</a>
</li>
<!-- Dropdown -->
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle" href="#" id="navbardrop" data-toggle="dropdown">
Dropdown link
</a>
<div class="dropdown-menu">
<a class="dropdown-item" href="#">Link 1</a>
<a class="dropdown-item" href="#">Link 2</a>
<a class="dropdown-item" href="#">Link 3</a>
</div>
</li>
</ul>
</nav>
می توایند یک فرم Html که حاوی یک یا چندین دکمه و کادر ورودی input باشد را نیز در منوی navbar به کار ببرید. برای این منظور از یک المنت <form> با کلاس class=”form-inline” برای گروه بندی و نمایش دکمه ها و کادرهای متنی input آن به صورت خطی و کنار هم در منو استفاده می شود.
مثال عملی : در کد مثال عملی زیر، یک فرم را با دو المنت کادر ورودی search و دکمه ارسال یا submit در منوی navbar قرار داده ایم :
<nav class="navbar navbar-expand-sm bg-dark navbar-dark">
<input class="form-control mr-sm-2" type="text" placeholder="Search">
<button class="btn btn-success" type="submit">Search</button>
</nav>
همچنین می توانید از کلاس های .input-group-prepend یا input-group-append برای اتصال یک آیکون یا متن کمکی به کادرهای متن ورودی استفاده شده در فرم ها، بهره بگیرید. در مثال زیر، برای کادر متن اول علامت @ را اضافه کرده ایم :
<nav class="navbar navbar-expand-sm bg-dark navbar-dark">
<form class="form-inline" action="/action_page.php">
<div class="input-group">
<div class="input-group-prepend">
<span class="input-group-text">@</span>
</div>
<input type="text" class="form-control" placeholder="Username">
</div>
</form>
</nav>
می توانید متن ساده (Text) را نیز به عنوان آیتم درون منوی navbar قرار دهید. این آیتم همانند متن نشان داده و خاصیت کلیک شدن یا منوی کرکره ای را ندارند.
برای اضافه کردن متن به آیتم های navbar، از کلاس navbar-text. استفاده می شود و نوشته به صورت یک آیتم با چیدمان مناسب و رعایت Padding در کنار سایر آیتم ها، قرار خواهد گرفت.
مثال عملی : در کد مثال عملی زیر، آیتم سوم به صورت نوشته ساده و با کلاس navbar-text. اضافه شده است :
<nav class="navbar navbar-expand-sm bg-dark navbar-dark">
<!-- Links -->
<ul class="navbar-nav">
<li class="nav-item">
<a class="nav-link" href="#">Link 1</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">Link 2</a>
</li>
</ul>
<!-- Navbar text-->
<span class="navbar-text">
Navbar text
</span>
</nav>
می توان کاری کرد که منوی Navigation Bar به صورت ثابت در پایین یا بالای صفحه، همواره نمایش داده شود.
در این حالت، حالت نمایش منوی navbar به صورت موقعیت ثابت (fixed position) درآمده و در هنگام اسکرول صفحه به پایین یا بالا، همواره در جای خود به صورت ثابت نمایش داده می شود.
در صورت استفاده از کلاس fixed-top.، منوی navbar همیشه در بالای صفحه ثابت، نمایش داده خواهد شد، همانند کد مثال عملی زیر:
<nav class="navbar navbar-expand-sm bg-dark navbar-dark fixed-top">
...
</nav>
همچنین در صورت استفاده از کلاس fixed-bottom.، منوی navbar همواره در پایین صفحه به صورت ثابت، نمایش داده می شود، همانند کد مثال عملی زیر:
<nav class="navbar navbar-expand-sm bg-dark navbar-dark fixed-bottom">
...
</nav>
گاهی اوقات، منوی navbar، کمی پایین تر از لبه بالا صفحه قرار دارد. در صورت استفاده از کلاس sticky-top. برای navbar، در صورت اسکرول صفحه به پایین، هنگامی که از روی محل navbar عبور می کنید، منو پرش کرده و به بالای صفحه می چسبد و با اسکرول بیشتر به پایین، همواره به صورت ثابت در بالای صفحه نمایش داده می شود. به مثال زیر دقت نمایید.
<nav class="navbar navbar-expand-sm bg-dark navbar-dark sticky-top">
...
</nav>
نکته :
کلاس sticky-top. در مرورگر IE II و پایین تر کار نمی کند و اشتباها آن را با حالت position:relative در نظر می گیرد.
آموزش طراحی سایت ادامه دارد