如何用CSS建立響應式下拉導航欄?
要建立一個響應式導航欄,可以使用媒體查詢。當需要為不同的裝置(如平板電腦、手機、桌上型電腦等)設定樣式時,可以使用媒體查詢。帶有下拉選單的導航欄如下所示。下拉選單包含聯絡我們、訪問我們和關於我們子選單:
設定導航選單和連結樣式
此處設定導航選單的背景顏色和連結。菜單鏈接使用display屬性設定為inline-block。它將元素顯示為內聯級塊容器:
nav{
background-color: #017575;
width: 100%;
}
.links,.links-hidden{
display: inline-block;
color: rgb(255, 255, 255);
text-decoration: none;
font-size: 18px;
font-weight: bold;
padding: 20px;
}
菜單鏈接
以下是我們的菜單鏈接:
<a class="links" href="#">HOME</a> <a class="links" href="#">EMPLOYEES</a> <a class="links" href="#">CAREER</a> <a class="links" href="#">Our History</a> <a class="links" href="#">Fund Us</a> <a class="links" href="#">More Info</a>
下拉菜單鏈接
以下是設定為下拉選單的菜單鏈接其他:
<div class="dropdown-menu">
<button class="menu-btn">Others <</button>
<div class="menu-content">
<a class="links-hidden" href="#">Contact Us</a>
<a class="links-hidden" href="#">Visit Us</a>
<a class="links-hidden" href="#">About Us</a>
</div>
</div>
設定下拉鍊接樣式
這就是下拉選單的樣式:
.dropdown-menu:hover .menu-content {
display: block;
}
.dropdown-menu:hover .menu-btn {
background-color: #3e8e41;
}
漢堡選單
漢堡選單是三條疊加的線。它用於響應式設計,當瀏覽器大小減小時(即出現在平板電腦和手機上)出現:
<a class="hamburger">☰</a>
響應式媒體查詢
以下是為平板電腦和手機檢視設定的:
@media screen and (max-width: 880px) {
nav a:not(:first-child) {
display: none;
}
nav a.hamburger {
float: right;
display: block;
padding: 12px;
}
.dropdown-menu{
display: none;
}
nav.openNav a.hamburger {
position: relative;
}
nav.openNav a {
float: none;
display: block;
text-align: center;
}
}
示例
以下是建立帶下拉選單的響應式導航欄的程式碼:
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1" />
<style>
*,*::after,*::before{
box-sizing: border-box;
}
.menu-btn {
font-size: 18px;
font-weight: bold;
display: inline-block;
text-align: center;
background-color: #040008;
color: white;
padding: 20px;
font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
border: none;
width: 100%;
}
.dropdown-menu {
position: relative;
display: inline-block;
}
.menu-content {
display: none;
position: absolute;
width: 100%;
background-color: #017575;
min-width: 160px;
z-index: 1;
}
nav{
background-color: #017575;
width: 100%;
}
.links,.links-hidden{
display: inline-block;
color: rgb(255, 255, 255);
text-decoration: none;
font-size: 18px;
font-weight: bold;
padding: 20px;
}
.links-hidden:hover,.links:hover {
background-color: rgb(8, 107, 46);
}
.dropdown-menu:hover .menu-content {
display: block;
}
.dropdown-menu:hover .menu-btn {
background-color: #3e8e41;
}
.hamburger {
color: white;
font-weight: bolder;
display: none;
}
@media screen and (max-width: 880px) {
nav a:not(:first-child) {
display: none;
}
nav a.hamburger {
float: right;
display: block;
padding: 12px;
}
.dropdown-menu{
display: none;
}
nav.openNav a.hamburger {
position: relative;
}
nav.openNav a {
float: none;
display: block;
text-align: center;
}
}
nav.openNav div.dropdown-menu{
display: block;
width: 100%;
}
</style>
</head>
<body>
<nav>
<a class="links" href="#">HOME</a>
<a class="links" href="#">EMPLOYEES</a>
<a class="links" href="#">CAREER</a>
<a class="links" href="#">Our History</a>
<a class="links" href="#">Fund Us</a>
<a class="links" href="#">More Info</a>
<div class="dropdown-menu">
<button class="menu-btn">Open <</button>
<div class="menu-content">
<a class="links-hidden" href="#">Contact Us</a>
<a class="links-hidden" href="#">Visit Us</a>
<a class="links-hidden" href="#">About Us</a>
</div>
</div>
<a class="hamburger">☰</a>
</nav>
<script>
var x = document.getElementsByTagName("nav")[0];
function toggleNav() {
if (x.className === "") {
x.className = " openNav";
}
else {
x.className = "";
}
}
document.querySelector(".hamburger").addEventListener("click", toggleNav);
</script>
</body>
</html>
廣告
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP