Xem này: các hộp cạnh nhau
Các liên kết trong menu hiện nằm trên trang lần lượt, hơi giống chữ trong câu. Menu thật có các mục xếp gọn cạnh nhau, có khoảng cách. CSS có công cụ xếp hộp gọi là flexbox:
nav {
display: flex; /* this box's children line up side by side */
gap: 16px; /* space between them */
}
Vậy thôi. display: flex bảo hộp: “Xếp con (ở đây là liên kết) thành hàng.” Và gap đặt khoảng cách giữa chúng. Flexbox làm được nhiều hơn:
nav {
display: flex;
gap: 16px;
justify-content: center; /* center children horizontally */
align-items: center; /* also align them to the middle vertically */
flex-wrap: wrap; /* if they don't fit, wrap to the next line */
}
Xem này: menu như website thật
Hãy kết hợp mọi thứ bạn đã biết với flexbox:
header {
background-color: #1d4ed8; /* a colored bar at the top */
padding: 16px;
}
header h1 {
color: white;
margin: 0; /* heading without its default spacing */
}
nav {
display: flex;
gap: 8px;
flex-wrap: wrap;
margin-top: 8px;
}
nav a {
color: white;
text-decoration: none; /* remove the underline from links */
padding: 8px 14px;
border-radius: 999px; /* fully rounded ends = a pill shape */
background-color: rgba(255, 255, 255, 0.15); /* semi-transparent white */
}
nav a:hover {
background-color: rgba(255, 255, 255, 0.35);
}
Điều mới ở cuối: :hover nghĩa là “khi di chuột lên”. Mục menu sáng lên khi hover – đúng như website bạn quen.
Lượt của bạn 💪
Biến menu thành menu thật: thanh màu full chiều rộng header, mục cạnh nhau dạng viên thuốc, sáng khi hover. Lấy màu từ bảng màu bài 6.
🏫 Website trường – giải pháp (xanh)
header {
background-color: #1d4ed8;
padding: 16px;
}
header h1 { color: white; margin: 0; }
nav {
display: flex;
gap: 8px;
flex-wrap: wrap;
margin-top: 8px;
}
nav a {
color: white;
text-decoration: none;
padding: 8px 14px;
border-radius: 999px;
background-color: rgba(255, 255, 255, 0.15);
}
nav a:hover { background-color: rgba(255, 255, 255, 0.35); }
🙋 Website cá nhân – giải pháp (cam)
Cùng code, chỉ đổi màu header:
header {
background-color: #ea580c;
padding: 16px;
}
🌍 Nhật ký du lịch – giải pháp (xanh lá)
Cùng code, chỉ đổi màu header:
header {
background-color: #15803d;
padding: 16px;
}
⚽ Website câu lạc bộ – giải pháp (màu CLB)
Cùng code, chỉ đổi màu header theo câu lạc bộ:
header {
background-color: #b91c1c;
padding: 16px;
}
Muốn tên bên trái và menu bên phải, trên một dòng? Bọc header trong flexbox khác: thêm header { display: flex; justify-content: space-between; align-items: center; }. Thuộc tính space-between nghĩa là “đẩy con ra xa: cái đầu sang trái, cái cuối sang phải”.
Tự kiểm tra: Phía trên website có thanh màu, tên trắng và mục menu dạng viên thuốc sáng khi hover. Nhớ – vì CSS dùng chung, menu đổi trên mọi trang cùng lúc.
Điều cần nhớ từ bài này
display: flexxếp con của hộp thành hàng,gaptạo khoảng cách giữa chúng.justify-contentvàalign-itemscăn chỉnh,flex-wrap: wrapcho phép xuống dòng.:hover= “khi chuột di lên”. Một chút sáng lên làm website có cảm giác sống.
© 2026 Ing. Martin Polak / AlgoRhino · Điều khoản sử dụng nội dung