Trong bài viết này, chúng ta sẽ cùng nhau xây dựng một thanh điều hướng đơn giản với HTML và CSS.
Bài viết này là một phần của bài hướng dẫn CSS thứ 8 trong series
Tự Học Lập Trình Web Một Cách Thật Tự Nhiên mà mình đang thực hiện.
Trước khi bắt đầu, xin hãy đảm bảo là bạn đã đọc qua những thứ căn bản được giới thiệu trước đó.
Xây dựng một thanh điều hướng đơn giản
Trước khi bắt đầu bài viết này, mình sẽ giả định là bạn đến từ bài hướng dẫn CSS về trang trí nội dung chữ
mà mình đã đăng tải trước đó. Như vậy thì tính tới thời điểm hiện tại, chúng ta đang có một vài
công cụ cơ bản như sau:
- Các bộ chọn CSS cơ bản, bộ chọn
class
, và bộ chọnid
- Các thuộc tính phổ biến:
color
&background-color
- Các thuộc tính canh chỉnh vị trí.
- Và các thuộc tính khác để trang trí nội dung chữ.
Chúng ta sẽ sử dụng chỉ những công cụ này để xây dựng một thanh điều hướng đơn giản.
Và đây là kết quả mà chúng ta dự kiến.
Ảnh chụp màn hình
Bài viết này chỉ là một ví dụ, bạn có thể sử dụng những màu sắc và font chữ yêu thích của riêng mình
để thu được kết quả như ý muốn dành riêng cho trang web của bạn.
Chuẩn bị code HTML
Từ kết quả dự kiến ở phía trên thì thanh điều hướng của chúng ta sẽ có khoảng 7 liên kết,
2 trong số đó sẽ có phong cách hiển thị đặc biệt so với phần còn lại và vì thế nên có id
riêng:
- Đầu tiên là logo có màu nền nổi bật.
- Và cái còn lại là
About Us
có vị trí hiển thị đặc biệt (tách rời khỏi số còn lại).
Bản thân thanh điều hướng cũng có thể có id
nếu như bạn dự kiến rằng đó cũng sẽ là một
phần đặc trưng duy nhất, không lặp lại trên trang web của bạn.
topnav.html
<!doctypehtml><html><head><metacharset="utf-8"><title>A simple navigation bar</title><linkrel="stylesheet"href="topnav.css"></head><body><navid="topnav"><aid="logo"class="nav-link"href="#">MY NAME</a><aclass="nav-link"href="#">Link 1</a><aclass="nav-link"href="#">Link 2</a><aclass="nav-link"href="#">Link 3</a><aclass="nav-link"href="#">Link 4</a><aclass="nav-link"href="#">Link 5</a><aid="about"class="nav-link"href="#">About Me</a></nav></body></html>
Những việc cần làm trong CSS
Việc trang trí bằng CSS có thể được chia thành các tác vụ nhỏ sau:
- Đặt màu nền cho
<nav>
mà gắn cố định thanh điều hướng ở phần trên của khung hiển thị web. - Thiết lập kích thước cho tất cả các liên kết.
- Thiết lập phong cách hiển thị đặc biệt cho
#logo
(có thể là màu nền hay font chữ đặc biệt ). - Thiết lập vị trí của
#about
đứng ở phía bên phải của thanh điều hướng.
1. Trang trí container <nav>
Việc gắn cố định thanh điều hướng ở trên đầu của khung hiển thị là một tác vụ đơn giản và trước đó
chúng ta đã thực hiện một lần trong bài viết về các thuộc tính position.
Tuy nhiên bạn nhớ thiết lập độ rộng width
của container thành 100%
nhé. Bởi vì lệnh position: fixed;
sẽ khiến container thu lại nếu như chúng ta không chỉ định width
.
topnav.css
#topnav{width: 100%;position: fixed;top: 0;left: 0;background-color: Black;font-family: Arial, sans-serif;font-size: 15px;}
2. Thiết lập kích thước cho tất cả các liên kết
Tác vụ này chúng ta cũng đã từng thực hiện một lần trong bài viết về các kiểu container trong CSS.
topnav.css
.nav-link{display: inline-block;width: 100px;height: 55px;color: White;/* centering text */text-align: center;/* horizontally */line-height: 55px;/* vertically */text-decoration: none;}
3. Thiết lập phong cách đặc biệt cho #logo
Phần này chỉ là tùy chọn và tùy thuộc vào phong cách của riêng bạn, bạn cũng có thể sẽ muốn
sử dụng một hình ảnh hay một từ nào đó như trong ví dụ của tôi.
topnav.css
#logo{width: 120px;background-color: RoyalBlue;font-weight: bold;}
4. Thiết lập vị trí cho #about
Đây là tác vụ cuối cùng và cũng là tác vụ dễ thực hiện nhất. Chúng ta sẽ thiết lập vị trí của #about
đứng phía
bên phải của thanh điều hướng.
topnav.css
#about{position: absolute;top: 0;right: 0;}
Dọn dẹp code
Xin chúc mừng!
Bạn vừa mới xây dựng xong một thanh điều hướng đơn giản cho trang web của bạn. Hãy lưu lại các đoạn mã
đầu đó trong máy tính để bạn có thể sử dụng lại sau này.
topnav.html
<!doctypehtml><html><head><metacharset="utf-8"><title>A simple navigation bar</title><linkrel="stylesheet"href="topnav.css"></head><body><navid="topnav"><aid="logo"class="nav-link"href="#">MY NAME</a><aclass="nav-link"href="#">Link 1</a><aclass="nav-link"href="#">Link 2</a><aclass="nav-link"href="#">Link 3</a><aclass="nav-link"href="#">Link 4</a><aclass="nav-link"href="#">Link 5</a><aid="about"class="nav-link"href="#">About Me</a></nav></body></html>
topnav.css
#topnav{width: 100%;position: fixed;top: 0;left: 0;background-color: Black;font-family: Arial, sans-serif;font-size: 15px;}.nav-link{display: inline-block;width: 100px;height: 55px;color: White;text-align: center;line-height: 55px;text-decoration: none;}#logo{width: 120px;background-color: RoyalBlue;font-weight: bold;}#about{position: absolute;top: 0;right: 0;}
Tổng kết
Thanh điều hướng này rất đơn giản và cũng đã sẵn sàng để sử dụng, tuy nhiên nó vẫn còn một vài điểm chưa hoàn thiện:
- Thiếu hiệu ứng lướt trỏ chuột
hover
. Đây là một tính năng nhỏ để khiến trang web của chúng ta có khả năng
đáp ứng linh động hơn với người sử dụng. Những người dùng máy tính sẽ cảm thấy thoải mái hơn nếu như
họ rê trỏ chuột tới một liên kết và thấy một hiệu ứng hiển thị nào đó. Có thể là màu chữ hoặc màu nền của liên kết
sẽ được thay đổi đôi chút… - Độ rộng của các liên kết đang cố định. Trong trường hợp các liên kết của bạn có chứa các từ với độ dài khác nhau,
tổng quan của thanh điều hướng trông sẽ hơi mất đồng đều. Và chúng ta vẫn sẽ phải thay đổi code CSS để đáp ứng
với nội dung chữ cụ thể. - Thanh điều hướng này không khả chuyển
responsive
và không có khả năng thay đổi phong cách hiển thị
để đáp ứng với các thiết bị di động. Thông thường thì trên màn hình thiết bị di động, phần chính của khối
các liên kết có thể được đóng/mở bằng việc click chuột vào một nút nhấn.
Không có gì để chúng ta phải thất vọng ở đây cả. Điều đó chỉ đơn giản có nghĩa là chúng ta sẽ có thể khiến mọi thứ
trở nên tốt đẹp hơn trong tương lai, khi mà chúng ta có trong tay nhiều công cụ hơn (các bộ chọn nâng cao, các thuộc
tính kiểm soát khoảng trống, cú pháp truy vấn thiết bị hiển thị, …).
Đã đến lúc chúng ta quay trở lại để hoàn thành bài hướng dẫn CSS mà chúng ta đang bỏ dở. Ở đó vẫn còn rất nhiều
thứ thú vị khác đang chờ đợi.
Nguồn: viblo.asia