如何創建:可點擊的下拉菜單
學習如何使用 CSS 和 JavaScript 創建可點擊的下拉菜單。
下拉菜單
下拉菜單是一種可切換的菜單,允許用戶從預定義列表中選擇一個值:
創建可點擊的下拉菜單
創建一個當用戶單擊按鈕時出現的下拉菜單。
第一步 - 添加 HTML:
<div class="dropdown"> <button onclick="myFunction()" class="dropbtn">Dropdown</button> <div id="myDropdown" class="dropdown-content"> <a href="#">Link 1</a> <a href="#">Link 2</a> <a href="#">Link 3</a> </div> </div>
例子解釋:
可以使用任何元素來打開下拉菜單,例如 <button>、<a> 或 <p> 元素。
使用容器元素(如 <div>)來創建下拉菜單,并在其中添加下拉菜單鏈接。
使用 <div> 元素將按鈕和 <div> 包裹起來,以便使用 CSS 正確定位下拉菜單。
第二步 - 添加 CSS:
/* 下拉按鈕 */ .dropbtn { background-color: #3498DB; color: white; padding: 16px; font-size: 16px; border: none; cursor: pointer; } /* 鼠標懸停和聚焦時的下拉菜單按鈕 */ .dropbtn:hover, .dropbtn:focus { background-color: #2980B9; } /* 容器 <div> - 用于定位下拉菜單內容所需的元素 */ .dropdown { position: relative; display: inline-block; } /* 下拉菜單內容(默認隱藏) */ .dropdown-content { display: none; position: absolute; background-color: #f1f1f1; min-width: 160px; box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2); z-index: 1; } /* 下拉菜單內的鏈接 */ .dropdown-content a { color: black; padding: 12px 16px; text-decoration: none; display: block; } /* 鼠標懸停時更改下拉菜單鏈接的顏色 */ .dropdown-content a:hover {background-color: #ddd;} /* 顯示下拉菜單(當用戶點擊下拉菜單按鈕時,使用 JS 將此類添加到 .dropdown-content 容器中) */ .show {display:block;}
例子解釋:
我們為下拉菜單按鈕設置了背景色、內邊距、懸停效果等樣式。
.dropdown
類使用 position:relative
,當我們想要將下拉菜單內容放置在下拉菜單按鈕的正下方時(使用 position:absolute
),這是必需的。
.dropdown-content
類包含實際的下拉菜單。它默認是隱藏的,并將在鼠標懸停時顯示(見下文)。請注意,最小寬度設置為 160px。您可以根據需要更改這個值。提示:如果您希望下拉菜單內容的寬度與下拉菜單按鈕一樣寬,可以將寬度設置為 100%(并在小屏幕上使用 overflow:auto
以啟用滾動)。
我們沒有使用邊框,而是使用了 box-shadow
屬性,使下拉菜單看起來像一張“卡片”。我們還使用 z-index
將下拉菜單放置在其他元素的前面。
第三步 - 添加 JavaScript:
/* 當用戶點擊按鈕時,切換下拉菜單內容的隱藏和顯示狀態 */ function myFunction() { document.getElementById("myDropdown").classList.toggle("show"); } // 如果用戶在下拉菜單外部單擊,則關閉下拉菜單 window.onclick = function(event) { if (!event.target.matches('.dropbtn')) { var dropdowns = document.getElementsByClassName("dropdown-content"); var i; for (i = 0; i < dropdowns.length; i++) { var openDropdown = dropdowns[i]; if (openDropdown.classList.contains('show')) { openDropdown.classList.remove('show'); } } } }
右對齊下拉菜單
導航欄中的下拉菜單
搜索(篩選)下拉菜單
相關頁面
教程:CSS 下拉菜單
教程:如何可懸停的下拉菜單