您好,登錄后才能下訂單哦!
這篇文章主要介紹“CSS導航欄和CSS下拉菜單怎么實現”的相關知識,小編通過實際案例向大家展示操作過程,操作方法簡單快捷,實用性強,希望這篇“CSS導航欄和CSS下拉菜單怎么實現”文章能幫助大家解決問題。
熟練使用導航欄,對于任何網站都非常重要。
使用CSS你可以轉換成好看的導航欄而不是枯燥的HTML菜單。
作為標準的HTML基礎一個導航欄是必須的。
在我們的例子中我們將建立一個標準的HTML列表導航欄。
導航條基本上是一個鏈接列表,所以使用 <ul>
和 <li>
元素非常有意義,公共HTML:
<ul> <li><a href="#home">主頁</a></li> <li><a href="#news">新聞</a></li> <li><a href="#contact">聯系</a></li> <li><a href="#about">關于</a></li></ul>
現在,讓我們從列表中刪除邊距和填充:
ul { list-style-type: none; margin: 0; padding: 0;}
例子解析:list-style-type:none
– 移除列表前小標志,一個導航欄并不需要列表標記。
移除瀏覽器的默認設置將邊距和填充設置為0。
上面的例子中的代碼是垂直和水平導航欄使用的標準代碼。
<!DOCTYPE html><html><head> <meta charset="UTF-8"> <title>顯示</title> <style> ul { list-style-type: none; margin: 0; padding: 0; } </style></head><body><ul> <li><a href="#home">主頁</a></li> <li><a href="#news">新聞</a></li> <li><a href="#contact">聯系</a></li> <li><a href="#about">關于</a></li></ul></body></html>
上面的代碼,我們只需要 <a>
元素的樣式,建立一個垂直的導航欄:
li a { display: block; width: 60px; background-color: #dddddd;}
示例說明:
display:block
顯示塊元素的鏈接,讓整體變為可點擊鏈接區域(不只是文本),它允許我們指定寬度 width:60px 。
塊元素默認情況下是最大寬度。我們要指定一個60像素的寬度。
注意: 請務必指定 <a>
元素在垂直導航欄的的寬度。如果省略寬度,IE6可能產生意想不到的效果。
<!DOCTYPE html><html><head> <meta charset="UTF-8"> <title>顯示</title> <style> ul { list-style-type: none; margin: 0; padding: 0; } li a { display: block; width: 60px; background-color: #dddddd; } </style></head><body><ul> <li><a href="#home">主頁</a></li> <li><a href="#news">新聞</a></li> <li><a href="#contact">聯系</a></li> <li><a href="#about">關于</a></li></ul></body></html>
創建一個簡單的垂直導航條實例,在鼠標移動到選項時,修改背景顏色:
<!DOCTYPE html><html><head> <meta charset="UTF-8"> <title>顯示</title> <style> ul { list-style-type: none; margin: 0; padding: 0; width: 200px; background-color: #f1f1f1; } li a { display: block; color: #000; padding: 8px 16px; text-decoration: none; } /* 鼠標移動到選項上修改背景顏色 */ li a:hover { background-color: #555; color: white; } </style></head><body><ul> <li><a href="#home">主頁</a></li> <li><a href="#news">新聞</a></li> <li><a href="#contact">聯系</a></li> <li><a href="#about">關于</a></li></ul></body></html>
在點擊了選項后,我們可以添加 “active”
類來標準哪個選項被選中:
li a.active { background-color: #4CAF50; color: white;}li a:hover:not(.active) { background-color: #555; color: white;}
示例代碼:
<!DOCTYPE html><html><head> <meta charset="UTF-8"> <title>顯示</title> <style> ul { list-style-type: none; margin: 0; padding: 0; width: 200px; background-color: #f1f1f1; } li a { display: block; color: #000; padding: 8px 16px; text-decoration: none; } /* 鼠標移動到選項上修改背景顏色 */ li a:hover { background-color: #555; color: white; } li a.active { background-color: #4CAF50; color: white; } li a:hover:not(.active) { background-color: #555; color: white; } </style></head><body><ul id="nav"> <li><a class="active" href="#home">主頁</a></li> <li><a href="#news">新聞</a></li> <li><a href="#contact">聯系</a></li> <li><a href="#about">關于</a></li></ul><script>function removeActiveClass(node) { node.className = '';}let menus = document.querySelectorAll('#nav');menus.forEach(function (value, index) { value.addEventListener('click', function (e) { var target = e.target; Array.prototype.forEach.call(document.querySelectorAll('#nav li a'), removeActiveClass); target.className = 'active'; })});</script></body></html>
可以在 <li> or <a>
上添加 text-align:center
樣式來讓鏈接居中。
可以在 border <ul>
上添加 border 屬性來讓導航欄有邊框。
如果要在每個選項上添加邊框,可以在每個 <li>
元素上添加 border-bottom :
<!DOCTYPE html><html><head> <meta charset="UTF-8"> <title>顯示</title> <style> ul { list-style-type: none; margin: 0; padding: 0; width: 200px; background-color: #f1f1f1; border: 1px solid #555; } li a { display: block; color: #000; padding: 8px 16px; text-decoration: none; } li { text-align: center; border-bottom: 1px solid #555; } li:last-child { border-bottom: none; } li a.active { background-color: #4CAF50; color: white; } li a:hover:not(.active) { background-color: #555; color: white; } </style></head><body><ul id="nav"> <li><a class="active" href="#home">主頁</a></li> <li><a href="#news">新聞</a></li> <li><a href="#contact">聯系</a></li> <li><a href="#about">關于</a></li></ul><script>function removeActiveClass(node) { node.className = '';}let menus = document.querySelectorAll('#nav');menus.forEach(function (value, index) { value.addEventListener('click', function (e) { var target = e.target; Array.prototype.forEach.call(document.querySelectorAll('#nav li a'), removeActiveClass); target.className = 'active'; })});</script></body></html>
接下來我們創建一個左邊是全屏高度的固定導航條,右邊是可滾動的內容。
ul { list-style-type: none; margin: 0; padding: 0; width: 25%; background-color: #f1f1f1; height: 100%; /* 全屏高度 */ position: fixed; overflow: auto; /* 如果導航欄選項多,允許滾動 */}
注意: 該實例可以在移動設備上使用。
源碼
<!DOCTYPE html><html><head> <meta charset="UTF-8"> <title>顯示</title> <style> *{ margin: 0; padding: 0; } ul { list-style-type: none; margin: 0; padding: 0; width: 25%; background-color: #f1f1f1; height: 100%; /* 全屏高度 */ position: fixed; overflow: auto; /* 如果導航欄選項多,允許滾動 */ } li a { display: block; color: #000; padding: 8px 16px; text-decoration: none; } li { text-align: center; border-bottom: 1px solid #555; } li:last-child { border-bottom: none; } li a.active { background-color: #4CAF50; color: white; } li a:hover:not(.active) { background-color: #555; color: white; } </style></head><body><ul id="nav"> <li><a class="active" href="#home">主頁</a></li> <li><a href="#news">新聞</a></li> <li><a href="#contact">聯系</a></li> <li><a href="#about">關于</a></li></ul><script>function removeActiveClass(node) { node.className = '';}let menus = document.querySelectorAll('#nav');menus.forEach(function (value, index) { value.addEventListener('click', function (e) { var target = e.target; Array.prototype.forEach.call(document.querySelectorAll('#nav li a'), removeActiveClass); target.className = 'active'; })});</script></body></html>
有兩種方法創建橫向導航欄。使用 內聯 (inline)
或 浮動 (float)
的列表項。
這兩種方法都很好,但如果你想鏈接到具有相同的大小,你必須使用浮動的方法。
建立一個橫向導航欄的方法之一是指定元素, 上述代碼是標準的內聯:
ul { list-style-type:none; margin:0; padding:0;}li { display:inline;}
實例解析:
display:inline
; -默認情況下,<li>
元素是塊元素。
在這里,我們刪除換行符之前和之后每個列表項,以顯示一行。
在上面的例子中鏈接有不同的寬度。
對于所有的鏈接寬度相等,浮動 <li>
元素,并指定為 <a>
元素的寬度:
ul { list-style-type:none; margin:0; padding:0; overflow:hidden;}li { float:left;}li a { display: block; color: #000; padding: 8px 16px; text-decoration: none;}
實例解析:
float:left – 使用浮動塊元素的幻燈片彼此相鄰。 display:block – 顯示塊元素的鏈接,讓整體變為可點擊鏈接區域(不只是文本),它允許我們指定寬度。 width:60px – 塊元素默認情況下是最大寬度。我們要指定一個60像素的寬度。
創建一個水平導航條,在鼠標移動到選項后修改背景顏色。
ul { list-style-type: none; margin: 0; padding: 0; overflow: hidden; background-color: #333;} li { float: left;} li a { display: block; color: white; text-align: center; padding: 14px 16px; text-decoration: none;} /*鼠標移動到選項上修改背景顏色 */li a:hover { background-color: #111;}
將導航條最右邊的選項設置右對齊 (float:right;):
<li style="float:right"><a href="#about">關于</a></li>
<li>
通過 border-right 樣式來添加分割線:
/* 除了最后一個選項(last-child) 其他的都添加分割線 */ li { border-right: 1px solid #bbb; } li:last-child { border-right: none; }<ul> <li><a class="active" href="#home">主頁</a></li> <li><a href="#news">新聞</a></li> <li><a href="#contact">聯系</a></li> <li><a href="#about">關于</a></li></ul>
可以設置頁面的導航條固定在頭部或者底部。
固定在頭部:
ul { position: fixed; top: 0; width: 100%;}
固定在底部:
ul { position: fixed; bottom: 0; width: 100%;}
注意: 該實例可以在移動設備上使用。
<!DOCTYPE html><html><head> <meta charset="UTF-8"> <title>顯示</title> <style> *{ margin: 0; padding: 0; } ul { list-style-type: none; margin: 0; padding: 0; overflow: hidden; background-color: #333; } li { float: left; border-right: 1px solid #bbb; } li a { display: block; color: white; text-align: center; padding: 14px 16px; text-decoration: none; } /*鼠標移動到選項上修改背景顏色 */ li a:hover { background-color: #111; } li a.active { background-color: #4CAF50; color: white; } li a:hover:not(.active) { background-color: #555; color: white; } </style></head><body><ul id="nav"> <li><a class="active" href="#home">主頁</a></li> <li><a href="#news">新聞</a></li> <li><a href="#contact">聯系</a></li> <li style="float:right"><a href="#about">關于</a></li></ul><script>function removeActiveClass(node) { node.className = '';}let menus = document.querySelectorAll('#nav');menus.forEach(function (value, index) { value.addEventListener('click', function (e) { var target = e.target; Array.prototype.forEach.call(document.querySelectorAll('#nav li a'), removeActiveClass); target.className = 'active'; })});</script></body></html>
<!DOCTYPE html><html><head lang="en"> <meta charset="UTF-8"> <title>原生js實現菜單動態添加active類</title> <style> *{ margin: 0; padding: 0; } ul{ margin: 0 auto; display: flex; justify-content: center; align-items: center; height: 50px; list-style: none; box-shadow: 0 2px 4px #eeeeee; } ul > li { padding: 6px 16px; margin: 0 5px; border-right: 1px solid #f7f7f7; border-bottom: 1px solid transparent; cursor: pointer; } ul > li:last-child{ border-right: none; } li:hover, li:focus, .active { color: #ff6615; border-bottom: 1px solid #ff6615; } </style></head><body><ul id="nav"> <li class="active">首頁</li> <li>產品中心</li> <li>新聞資訊</li> <li>文檔下載</li> <li>聯系我們</li></ul><script> function removeActiveClass(node) { node.className = ''; } let menus = document.querySelectorAll('#nav'); menus.forEach(function (value, index) { value.addEventListener('click', function (e) { var target = e.target; Array.prototype.forEach.call(document.querySelectorAll('#nav li'), removeActiveClass); target.className = 'active'; }) });</script></body></html>
使用 CSS 創建一個鼠標移動上去后顯示下拉菜單的效果。
當鼠標移動到指定元素上時,會出現下拉菜單。
<!DOCTYPE html><html><head> <meta charset="UTF-8"> <title>下拉菜單</title> <style> /*鼠標下拉菜單*/ .dropdown { position: relative; display: inline-block; } .dropdown-content { display: none; position: absolute; background-color: #f9f9f9; min-width: 160px; box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2); padding: 12px 16px; } .dropdown:hover .dropdown-content { display: block; } </style></head><body><p class="dropdown"> <span>鼠標移動到我這看到下拉菜單!</span> <p class="dropdown-content"> <p>CSDN博客</p> <p>wgchen.blog.csdn.net</p> </p></p></body></html>
HTML 部分
我們可以使用任何的 HTML 元素來打開下拉菜單,如:<span>
, 或 a <button>
元素。
使用容器元素 (如: <p>
) 來創建下拉菜單的內容,并放在任何你想放的位置上。
使用 <p>
元素來包裹這些元素,并使用 CSS 來設置下拉內容的樣式。
CSS 部分
.dropdown
類使用 position:relative
:
這將設置下拉菜單的內容放置在下拉按鈕 (使用 position:absolute
) 的右下角位置。
.dropdown-content
類中是實際的下拉菜單。
默認是隱藏的,在鼠標移動到指定元素后會顯示。 注意 min-width
的值設置為 160px。你可以隨意修改它。
注意:如果你想設置下拉內容與下拉按鈕的寬度一致,可設置 width 為 100%
( overflow:auto 設置可以在小尺寸屏幕上滾動)。
我們使用 box-shadow
屬性讓下拉菜單看起來像一個”卡片”。
:hover
選擇器用于在用戶將鼠標移動到下拉按鈕上時顯示下拉菜單。
創建下拉菜單,并允許用戶選取列表中的某一項:
<!DOCTYPE html><html><head> <meta charset="UTF-8"> <title>下拉菜單</title> <style> /* 下拉按鈕樣式 */ .dropbtn { background-color: #4CAF50; color: white; padding: 16px; font-size: 16px; border: none; cursor: pointer; } /* 容器 <p> - 需要定位下拉內容 */ .dropdown { position: relative; display: inline-block; } /* 下拉內容 (默認隱藏) */ .dropdown-content { display: none; position: absolute; background-color: #f9f9f9; min-width: 160px; box-shadow: 0px 8px 16px 0px rgba(0, 0, 0, 0.2); } /* 下拉菜單的鏈接 */ .dropdown-content a { color: black; padding: 12px 16px; text-decoration: none; display: block; } /* 鼠標移上去后修改下拉菜單鏈接顏色 */ .dropdown-content a:hover { background-color: #f1f1f1 } /* 在鼠標移上去后顯示下拉菜單 */ .dropdown:hover .dropdown-content { display: block; } /* 當下拉內容顯示后修改下拉按鈕的背景顏色 */ .dropdown:hover .dropbtn { background-color: #3e8e41; } </style></head><body> <p class="dropdown"> <button class="dropbtn">下拉菜單</button> <p class="dropdown-content"> <a href="#">CSDN博客 1</a> <a href="#">CSDN博客 2</a> <a href="#">CSDN博客 3</a> </p> </p></body></html>
關于“CSS導航欄和CSS下拉菜單怎么實現”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識,可以關注億速云行業資訊頻道,小編每天都會為大家更新不同的知識點。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。