Bootstrap 4 Navigation Bar
Navigation Bars
Navigation bar là một thanh điều hướng thường nằm trên đầu trang:
Basic Navbar
Với Bootstrap, một navigation bar có thể dãn ra hoặc co lại tùy thuộc vào screen size.
Một navigation bar được tạo ra với class .navbar
, theo sau là một responsive collapsing class: .navbar-expand-xl|lg|md|sm
(xếp nav bar theo chiều dọc trên màn hình xlarge, large, medium hoặc small).
Để add links trong navbar, sử dụng thẻ <ul>
với class="navbar-nav"
. Sau đó add <li>
cùng với class .nav-item
theo sau nó là thẻ <a>
với class .nav-link
:
Ví dụ
<!-- 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>
Vertical Navbar (Navbar dọc)
Loại bỏ class .navbar-expand-xl|lg|md|sm
để tạo một vertical navigation bar:
Ví dụ
<!-- 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>
Centered Navbar
Add class .justify-content-center
để canh giữa navigation bar.
Ví dụ
<nav class="navbar navbar-expand-sm bg-light justify-content-center">
<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>
Colored Navbar
Sử dụng bất kỳ class .bg-color
để thay đổi background color cho navbar (.bg-primary
, .bg-success
, .bg-info
, .bg-warning
, .bg-danger
, .bg-secondary
, .bg-dark
và .bg-light
)
Mẹo: Add white text color cho tất cả links trong navbar với class .navbar-dark
, hoặc class .navbar-light
để add black text color.
Ví dụ
<!-- 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>
Active/disabled: Add class .active
cho thẻ <a>
để highlight current link, hoặc class .disabled
để vô hiệu hóa link.
Brand / Logo
Class .navbar-brand
được dùng để highlight nhãn/logo/tên dự án trang của bạn:
Ví dụ
<nav class="navbar navbar-expand-sm bg-dark navbar-dark">
<!-- Brand/logo -->
<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>
<li class="nav-item">
<a class="nav-link" href="#">Link 3</a>
</li>
</ul>
</nav>
Khi sử dụng class .navbar-brand
trên image, Bootstrap 4 sẽ tự động định kiểu hình ảnh để vừa với navigation bar.
Ví dụ
<nav class="navbar navbar-expand-sm bg-dark navbar-dark">
<!-- Brand/logo -->
<a class="navbar-brand" href="#">
<img src="bird.jpg" alt="logo" style="width:40px;">
</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>
<li class="nav-item">
<a class="nav-link" href="#">Link 3</a>
</li>
</ul>
</nav>
Collapsing The Navigation Bar
Đặc biệt khi trên màn hình nhỏ, bạn muốn hide navigation links và thay thế chúng bằng một button sẽ hiển thị chúng khi nhấp vào.
Để tạo một collapsible navigation bar, sử dụng một button với class="navbar-toggler", data-toggle="collapse" và data-target="#thetarget"
. Sau đó bao navbar content (links, vv) bên trong thẻ div với class="collapse navbar-collapse"
, theo sau là một id trùng với data-target
của button trên.
Ví dụ
<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>
Mẹo: Ban có thể bỏ class .navbar-expand-md để LUÔN hide navbar links và hiển thị toggler button.
Navbar với Dropdown
Ví dụ
<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>
Navbar Forms và Buttons
Ví dụ
<nav class="navbar navbar-expand-sm bg-dark navbar-dark">
<form class="form-inline" action="/action_page.php">
<input class="form-control mr-sm-2" type="text" placeholder="Search">
<button class="btn btn-success" type="submit">Search</button>
</form>
</nav>
Bạn cũng có thể sử dụng các class input khác, ví dụ như .input-group-prepend
hoặc .input-group-append
để attach một icon hoặc text bên cạnh input field. Bạn sẽ được tìm hiểu thêm về các class này trong bài Bootstrap Inputs.
Ví dụ
<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>
Navbar Text
Sử dụng class.navbar-text
để chèn text vào nav bar thay vì links.Ví dụ
<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>
Fixed Navigation Bar
Navigation bar có thể được cố định top hoặc bottom của trang web được gọi là fixed navigation bar.
Class .fixed-top
sẽ khiến navigation bar hiện cố định đầu trang dù bạn scroll xuống:
Ví dụ
<nav class="navbar navbar-expand-sm bg-dark navbar-dark fixed-top">
<a class="navbar-brand" href="#">Logo</a>
<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>
</ul>
</nav>
<div class="container-fluid" style="margin-top:80px">
<h3>Top Fixed Navbar</h3>
<p>A fixed navigation bar stays visible in a fixed position (top or bottom) independent of the page scroll.</p>
<h1>Scroll this page to see the effect</h1>
</div>
Tương tự sử dụng class .fixed-bottom
để khiến navbar cố định bên dưới trang web:
Sử dụng class .sticky-top
để khiến navbar dính vào trên cùng trang web khi bạn scroll qua nó.
Note: Class này không có tác dụng với trình duyệt từ IE11 trở xuống (sẽ coi nó như position:relative
).
Ví dụ
<div class="container-fluid">
<br>
<h3>Sticky Navbar</h3>
<p>A sticky navigation bar stays fixed at the top of the page when you scroll past it.</p>
<p>Scroll this page to see the effect. <strong>Note:</strong> sticky-top does not work in IE11 and earlier.</p>
</div>
<nav class="navbar navbar-expand-sm bg-dark navbar-dark sticky-top">
<a class="navbar-brand" href="#">Logo</a>
<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>
</ul>
</nav>
<div class="container-fluid"><br>
<p>Some example text. Some example text. Some example text. Some example text. Some example text.</p>
<p>Some example text. Some example text. Some example text. Some example text. Some example text.</p>
<p>Some example text. Some example text. Some example text. Some example text. Some example text.</p>
<p>Some example text. Some example text. Some example text. Some example text. Some example text.</p>
</div>
Tags:
Phản hồi từ học viên
5
(Dựa trên đánh giá ngày hôm nay)