Menu dropdown rất quan trọng cho các website tương tác cho phép người dùng truy cập nhiều liên kết. Sử dụng CSS bạn có thể thiết kế menu dropdown đẹp và hữu ích. Bài viết này sẽ trình bày các loại dropdown và cách triển khai nó bằng CSS.
Basic Dropdown Structure
Một dropdown thường gồm một danh sách lồng nhau trong một danh sách không thứ tự (<ul>
) sử dụng thẻ list (<li>
) để tạo cấu trúc. Các thuộc tính CSS làm cho các phần tử này trở nên sống động. Nhờ đó, dropdown trở nên tương tác và hấp dẫn về mặt thị giác.
<!DOCTYPE html>
<html>
<head>
<title>Dropdown property</title>
</head>
<body>
<nav>
<ul>
<li class="Lev-1">
<a href="">Level-1</a>
<ul>
<li><a href="">Link 1</a></li>
<li><a href="">Link 2</a></li>
<li><a href="">Link 3</a></li>
<li><a href="">Link 4</a></li>
</ul>
</li>
</ul>
</nav>
</body>
</html>
Output:
Adding CSS to Basic Dropdown HTML Structure
html<!DOCTYPE html>
<html>
<head>
<title>Navigation property</title>
<style>
a {
color: white;
background-color: #990;
text-decoration: none;
}
nav {
background: #333;
}
nav>ul {
margin: 0 auto;
width: 80px;
}
nav ul li {
display: block;
float: left;
margin-left: -40px;
position: relative;
}
nav ul a {
display: block;
float: left;
width: 150px;
padding: 10px 20px;
}
nav ul a:hover {
background: #090;
}
nav ul li ul li {
float: none;
}
nav ul li ul {
display: none;
position: absolute;
background: #333;
top: 42px;
}
nav ul li:hover>ul {
display: block;
}
nav ul li a {
display: block;
}
.gfg {
font-size: 40px;
font-weight: bold;
color: #009900;
Text-align: center;
}
p {
font-size: 20px;
font-weight: bold;
text-align: center;
}
</style>
</head>
<body>
<div class="gfg">GeeksforGeeks</div>
<p>Dropdown Navigation property</p>
<nav>
<ul>
<li class="Lev-1">
<a href="">Level-1</a>
<ul>
<li><a href="">Link 1</a></li>
<li><a href="">Link 2</a></li>
<li><a href="">Link 3</a></li>
<li><a href="">Link 4</a></li>
</ul>
</li>
</ul>
</nav>
</body>
</html>
Output:
Đoạn code trên tạo ra một kết quả đầu ra dựa trên cấu trúc dropdown. Các phần quan trọng của code HTML được thảo luận dưới đây.
- Nav là vùng chứa ngoài cùng
- nav ul li ul li - float được đặt thành none để giữ nguyên khi di chuột qua.
- Sử dụng relative position để li di chuyển hoặc thay đổi vị trí tương ứng với thành phần của nó.
- Sử dụng '>' sau hover để xem hiệu ứng hover trên ul liền kề của li.
Right-Aligned Dropdown
Dropdown căn phải đặt nội dung menu dropdown ở bên phải màn hình bằng cách đặt thuộc tính float thành right. Cách bố trí này hữu ích cho các thanh điều hướng. Chúng cần căn chỉnh các tùy chọn ở bên phải màn hình.
Example: Right-Aligned Dropdown
Bằng cách đặt thuộc tính float thành right trong CSS menu dropdown tự động căn chỉnh sang phải. Nó cung cấp một giao diện rõ ràng và có tổ chức.
html<!DOCTYPE html>
<html>
<head>
<title>right-aligned dropdown content property</title>
<style>
#drop {
background-color: teal;
color: white;
padding: 10px;
font-size: 16px;
width: : 200px;
height: : 60px;
border-radius: 5px;
font-size: 20px;
}
#drop-down {
position: relative;
display: inline-block;
}
#dropdown-menu {
display: none;
position: absolute;
background-color: #666;
width: 160px;
margin-left: -45px;
border-radius: 5px;
z-index: 1;
}
#dropdown-menu a {
color: black;
padding: 12px 16px;
text-decoration: none;
display: block;
}
.gfg {
font-size: 40px;
font-weight: bold;
color: #009900;
Text-align: center;
}
p {
font-size: 20px;
font-weight: bold;
text-align: center;
}
#dropdown-menu a:hover {
background-color: #ddd;
}
#drop-down:hover #dropdown-menu {
display: block;
}
</style>
</head>
<body>
<div class="gfg">GeeksforGeeks</div>
<p>Right-aligned Dropdown content property</p>
<div id="drop-down"
style=" float: right;
margin-right: 70px;">
<button id="drop">DropDown</button>
<div id="dropdown-menu">
<a href="">Item 1</a>
<a href="">Item 2</a>
<a href="">Item 3</a>
<a href="">Item 4</a>
</div>
</div>
</body>
</html>
Output:
Image Dropdown
Một image dropdown phóng to hình ảnh khi di chuột qua cung cấp hiệu ứng zoom. Hiệu ứng này yêu cầu CSS cơ bản để kiểm soát trạng thái hiển thị và hover. Nó đặc biệt hữu ích cho danh mục đầu tư giới thiệu sản phẩm và bộ sưu tập ảnh.
Example: Image Dropdown
Khi người dùng di chuột qua ảnh nó sẽ phóng to tạo ra hiệu ứng thị giác hấp dẫn. Điều này có thể làm nổi bật những hình ảnh quan trọng trên trang web của bạn.
html<!DOCTYPE html>
<html>
<head>
<title>Image Dropdown</title>
<style>
.dropmenu {
position: relative;
display: inline-block;
margin-left: 150px;
}
.sub-dropmenu {
display: none;
position: absolute;
}
.dropmenu:hover .sub-dropmenu {
display: block;
}
.enlarge {
padding: 15px;
text-align: center;
}
.gfg {
margin-left: 40px;
font-size: 30px;
font-weight: bold;
}
</style>
</head>
<body>
<div class="gfg">Image Dropdown property</div>
<div class="dropmenu">
<img src=
"https://media.geeksforgeeks.org/wp-content/uploads/temp1.png"
width="150"
height="50" align="middle">
<div class="sub-dropmenu">
<img src=
"https://media.geeksforgeeks.org/wp-content/uploads/temp1.png"
width="600"
height="200">
</div>
</div>
</body>
</html>
Output:
Clicked Dropdowns
Clicked dropdowns yêu cầu JavaScript để bật tắt hiển thị nội dung dropdown khi nút được nhấp vào. Loại dropdown này thân thiện với người dùng và đảm bảo nội dung menu chỉ hiển thị khi cần.
Example: Clicked Dropdown
Triển khai clicked dropdown bao gồm thêm một hàm JavaScript để mở rộng và thu gọn menu. Cách tiếp cận này tăng cường khả năng sử dụng đặc biệt trên các thiết bị di động.
html<!DOCTYPE html>
<html>
<head>
<title>clicked dropdown</title>
<style type="text/css">
button {
background: #009900;
width: 200px;
height: 60px;
color: white;
border: 1px solid #fff;
font-size: 20px;
border-radius: 5px;
}
ul li {
list-style: none;
}
ul li a {
display: block;
background: #c99;
width: 200px;
height: 50px;
text-decoration: none;
text-align: center;
padding: 10px;
border-radius: 5px;
text-align: center;
color: white;
font-size: 25px;
}
ul li a {
text-decoration: none;
}
ul li a:hover {
background: #009900;
}
.open {
display: none;
}
.gfg {
font-size: 40px;
font-weight: bold;
color: #009900;
Text-align: center;
}
p {
font-size: 20px;
font-weight: bold;
text-align: center;
}
</style>
<script type="text/javascript">
function open_menu() {
let clicked = document.getElementById('drop-menu');
if (clicked.style.display == 'block') {
clicked.style.display = 'none';
}
else {
clicked.style.display = 'block';
}
}
</script>
</head>
<body>
<div class="gfg">GeeksforGeeks</div>
<p>Clicked Dropdown content property</p>
<div id="dropdown">
<button onclick="open_menu()">Click Me!</button>
<div class="open" id="drop-menu">
<ul>
<li><a href="">Item-1</a></li>
<li><a href="">Item-2</a></li>
<li><a href="">Item-3</a></li>
<li><a href="">Item-4</a></li>
</ul>
</div>
</div>
</body>
</html>
Output:
Interactive Dropdown
Để tạo một interactive dropdown hãy áp dụng các kiểu CSS cho cấu trúc cơ bản. Điều này bao gồm tạo kiểu cho vùng chứa nav các mục danh sách và các liên kết. Thêm hiệu ứng hover để hiển thị menu dropdown.
Example: Interactive Dropdown
Interactive dropdowns làm cho menu điều hướng trở nên năng động và hấp dẫn hơn. Bằng cách sử dụng hiệu ứng CSS hover menu dropdown có thể xuất hiện mượt mà. Điều này giúp tăng cường trải nghiệm người dùng.
HTML<!DOCTYPE html>
<html>
<head>
<title>Navigation Property</title>
<style>
a {
color: white;
background-color: #990;
text-decoration: none;
}
nav {
background: #333;
}
nav>ul {
margin: 0 auto;
width: 80px;
}
nav ul li {
display: block;
float: left;
margin-left: -40px;
position: relative;
}
nav ul a {
display: block;
float: left;
width: 150px;
padding: 10px 20px;
}
nav ul a:hover {
background: #090;
}
nav ul li ul li {
float: none;
}
nav ul li ul {
display: none;
position: absolute;
background: #333;
top: 42px;
}
nav ul li:hover>ul {
display: block;
}
nav ul li a {
display: block;
}
</style>
</head>
<body>
<nav>
<ul>
<li class="Lev-1">
<a href="#">Level-1</a>
<ul>
<li><a href="#">Link 1</a></li>
<li><a href="#">Link 2</a></li>
<li><a href="#">Link 3</a></li>
<li><a href="#">Link 4</a></li>
</ul>
</li>
</ul>
</nav>
</body>
</html>
Output:

Note: Một số điểm nổi bật quan trọng của code.
- Hàm javascript sẽ mở rộng và thu gọn menu khi nút "Click Me" được nhấp.
- Chúng ta sử dụng onclick để gọi hàm javascript trong thẻ button.
Bằng cách hiểu và triển khai các thuộc tính CSS bạn có thể tạo menu dropdown tương tác. Bạn có thể tạo menu dropdown đẹp mắt và thân thiện với người dùng. Từ cấu trúc cơ bản đến tương tác nâng cao như clicked dropdowns và image enlargements. Việc nắm vững các kỹ thuật này sẽ nâng cao tính năng và giao diện trang web của bạn.