使用 CSS 能夠建立一個鼠標移入後顯示下拉菜單的效果。html
當鼠標移入指定元素時,顯示下拉菜單。代碼以下:瀏覽器
1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta charset="UTF-8"> 5 <title>簡單的下拉菜單</title> 6 <style> 7 .dropdown{ 8 position:relative; 9 display:inline-block; 10 } 11 12 .dropdown-content{ 13 min-width:200px; 14 border:1px solid black; 15 position:absolute; 16 display:none; 17 } 18 19 .dropdown:hover .dropdown-content{ 20 display:block; 21 } 22 </style> 23 </head> 24 <body> 25 <div class="dropdown"> 26 <span>鼠標你過來,我爲你展現下拉菜單。</span> 27 <div class="dropdown-content"> 28 <p>下拉菜單 1</p> 29 <p>下拉菜單 2</p> 30 </div> 31 </div> 32 </body> 33 </html>
實例解析:ssh
HTML 部分:spa
可使用任何 HTML 元素來打開下拉菜單,好比 <span>,或 <a>、<button> 等元素。指針
而後,使用 <div> 元素來建立一個容器,用於包含下拉菜單的內容,並自定義他須要出現的位置。code
最後,再使用 <div> 元素來包裹這些元素,並使用 CSS 來設置下拉內容的樣式。htm
CSS 部分:對象
.dropdown 類使用 position:relative,這將設置下拉菜單的內容放置在下拉按鈕(使用 position:absolute)的右下角位置。blog
.dropdown-content 類中是實際的下拉菜單。默認是隱藏的,在鼠標移入指定元素後顯示。圖片
注意:在上面的例子中,下拉菜單容器的寬度設置爲最小 200px,根據實際狀況能夠自行定義。
若是但願下拉菜單與下拉按鈕的寬度一致,可將寬度設置爲 100%,overflow:auto 屬性能夠指定在小尺寸屏幕上滾動。
:hover 選擇器用於在用戶將鼠標移動到下拉按鈕上時顯示下拉菜單,將下拉菜單容器設置爲 display:block;
在上面例子的基礎上,建立一個下拉菜單,並容許用戶選取列表中的某一項目。
1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta charset="UTF-8"> 5 <title>下拉菜單實例</title> 6 <style> 7 /* 容器 <div> - 須要定位下拉內容 */ 8 .dropdown{ 9 position:relative; 10 display:inline-block; 11 } 12 13 /* 下拉菜單內容,設置爲隱藏 */ 14 .dropdown-content{ 15 min-width:150px; 16 background-color:#F5F5F5; 17 position:absolute; 18 display:none; 19 box-shadow:0px 8px 15px 0px rgba(0,0,0,0.2); 20 } 21 22 /* 下拉按鈕樣式 */ 23 .dropbtn{ 24 color:white; 25 font-size:16px; 26 padding:15px; 27 border:none; 28 background-color:#00CD66; 29 cursor:pointer; 30 } 31 32 /* 下拉菜單連接的樣式 */ 33 .dropdown-content a{ 34 color:black; 35 text-decoration:none; 36 padding:12px 15px; 37 display:block; 38 } 39 40 /* 鼠標移入後顯示下拉菜單 */ 41 .dropdown:hover .dropdown-content{ 42 display:block; 43 } 44 45 /* 鼠標移入後修改連接的背景色 */ 46 .dropdown-content a:hover{ 47 background-color:#E8E8E8; 48 } 49 50 /* 下拉菜單顯示後修改下拉按鈕的背景色 */ 51 .dropdown:hover .dropbtn{ 52 background-color:#008B00; 53 } 54 </style> 55 </head> 56 <body> 57 <div class="dropdown"> 58 <button type="button" class="dropbtn">下拉菜單按鈕</button> 59 <div class="dropdown-content"> 60 <a href="#">下拉菜單項 1</a> 61 <a href="#">下拉菜單項 2</a> 62 <a href="#">下拉菜單項 3</a> 63 </div> 64 </div> 65 </body> 66 </html>
在 Chrome 中當鼠標移入下拉菜單按鈕時顯示以下:
在上面的例子中,下拉菜單的內容設置了 box-shadow 屬性,這個屬性主要用於添加陰影,這樣下拉菜單看起來就像一個「卡片」同樣。該屬性指定下拉菜單在水平方向陰影爲 0,垂直方向爲 8 像素的陰影,模糊距離爲 15 像素,陰影的尺寸爲 0,並指定陰影的顏色爲黑色,且透明度爲 0.2。
下拉菜單按鈕使用了 cursor 屬性,該屬性主要用於指定鼠標光標的類型,即鼠標指針放在一個元素邊界範圍內時所用的光標形狀。
下表列出了該屬性全部的值: 鼠標可移入對應的屬性值,查看光標的形狀。
值 | 說明 |
URL | 須要使用的自定義光標的 URL。注意:在此列表的末端始終定義一種普通的光標,以防沒有由 URL 定義的可用光標。 |
default | 默認光標,一般是一個箭頭。 |
auto | 默認,瀏覽器設置的光標。 |
pointer | 光標顯示爲指示連接的指針,即一隻手。 |
text | 此光標指示文本。 |
wait | 此光標指示程序正忙,顯示爲一個轉動的藍色小圓圈。 |
help | 此光標指示可用的幫助,顯示爲一個箭頭右下角帶有問號。 |
crosshair | 光標顯示爲十字線。 |
move | 此光標指示某對象可被移動。 |
e-resize | 此光標指示矩形框的邊緣可被向右(東)移動。 |
ne-resize | 此光標指示矩形框的邊緣可被向上及向右移動(北/東)。 |
nw-resize | 此光標指示矩形框的邊緣可被向上及向左移動(北/西)。 |
n-resize | 此光標指示矩形框的邊緣可被向上(北)移動。 |
se-resize | 此光標指示矩形框的邊緣可被向下及向右移動(南/東)。 |
sw-resize | 此光標指示矩形框的邊緣可被向下及向左移動(南/西)。 |
s-resize | 此光標指示矩形框的邊緣可被向下移動(南)。 |
w-resize | 此光標指示矩形框的邊緣可被向左移動(西)。 |
若是下拉菜單設置了 float:left 樣式,那麼還須要設置 left:0,即從 left:0 處開始從左向右顯示菜單內容,不然會超出瀏覽器左邊窗口。
若是下拉菜單設置了 float:right 樣式,默認都是從左向右顯示,菜單內容則會超出瀏覽器右邊窗口,因此還須要設置 right:0,讓下拉菜單內容從右向左。
1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta charset="UTF-8"> 5 <title>下拉菜單對齊</title> 6 <style> 7 /* 容器 <div> - 須要定位下拉內容 */ 8 .dropdown{ 9 position:relative; 10 display:inline-block; 11 } 12 13 /* 下拉菜單內容,設置爲隱藏 */ 14 .dropdown-content{ 15 min-width:150px; 16 background-color:#F5F5F5; 17 position:absolute; 18 right:0; 19 display:none; 20 box-shadow:0px 8px 15px 0px rgba(0,0,0,0.2); 21 } 22 23 /* 下拉按鈕樣式 */ 24 .dropbtn{ 25 color:white; 26 font-size:16px; 27 padding:15px; 28 border:none; 29 background-color:#00CD66; 30 cursor:pointer; 31 } 32 33 /* 下拉菜單連接的樣式 */ 34 .dropdown-content a{ 35 color:black; 36 text-decoration:none; 37 padding:12px 15px; 38 display:block; 39 } 40 41 /* 鼠標移入後顯示下拉菜單 */ 42 .dropdown:hover .dropdown-content{ 43 display:block; 44 } 45 46 /* 鼠標移入後修改連接的背景色 */ 47 .dropdown-content a:hover{ 48 background-color:#E8E8E8; 49 } 50 51 /* 下拉菜單顯示後修改下拉按鈕的背景色 */ 52 .dropdown:hover .dropbtn{ 53 background-color:#008B00; 54 } 55 </style> 56 </head> 57 <body> 58 <div class="dropdown" style="float:left;"> 59 <button type="button" class="dropbtn">左</button> 60 <div class="dropdown-content" style="left:0;"> 61 <a href="#">下拉菜單項 1</a> 62 <a href="#">下拉菜單項 2</a> 63 <a href="#">下拉菜單項 3</a> 64 </div> 65 </div> 66 67 <div class="dropdown" style="float:right;"> 68 <button type="button" class="dropbtn">右</button> 69 <div class="dropdown-content"> 70 <a href="#">下拉菜單項 1</a> 71 <a href="#">下拉菜單項 2</a> 72 <a href="#">下拉菜單項 3</a> 73 </div> 74 </div> 75 </body> 76 </html>
在 Chrome 中當鼠標移入右下拉按鈕時顯示以下:
下的例子,在下拉菜單中添加圖片:
1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta charset="UTF-8"> 5 <title>下拉圖片</title> 6 <style> 7 /* 容器 <div> - 須要定位下拉內容 */ 8 .dropdown{ 9 position:relative; 10 display:inline-block; 11 } 12 13 /* 下拉菜單內容,設置爲隱藏 */ 14 .dropdown-content{ 15 min-width:300px; 16 background-color:#F5F5F5; 17 position:absolute; 18 display:none; 19 box-shadow:0px 8px 15px 0px rgba(0,0,0,0.2); 20 } 21 22 /* 鼠標移入後顯示下拉菜單 */ 23 .dropdown:hover .dropdown-content{ 24 display:block; 25 } 26 27 /* 圖片文字描述的樣式 */ 28 .heading{ 29 padding:15px; 30 text-align:center; 31 } 32 </style> 33 </head> 34 <body> 35 <div class="dropdown"> 36 <img src="images/1.jpg" width="120" height="120" alt=""> 37 <div class="dropdown-content"> 38 <img src="images/xi.jpg" width="300" height="200" alt=""> 39 <div class="heading">最美的時光,留給最美的風景!</div> 40 </div> 41 </div> 42 </body> 43 </html>
在 Chrome 中當鼠標移入圖片下拉按鈕時顯示以下:
下面的例子,在導航欄菜單中添加下拉菜單:
1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta charset="UTF-8"> 5 <title>導航欄下拉菜單</title> 6 <style> 7 *{margin:0;padding:0;} 8 ul{ 9 list-style-type:none; 10 background-color:#333; 11 overflow:hidden; 12 } 13 li{ 14 float:left; 15 } 16 li a, .dropbtn{ 17 display:inline-block; 18 color:white; 19 text-align:center; 20 padding:14px 16px; 21 text-decoration:none; 22 } 23 24 li a:hover, .dropdown:hover .dropbtn{ 25 background-color:#111; 26 } 27 28 .dropdown{ 29 display:inline-block; 30 } 31 32 .dropdown-content{ 33 min-width:200px; 34 background-color:#F9F9F9; 35 position:absolute; 36 display:none; 37 box-shadow:0px 8px 15px 0px rgba(0,0,0,0.2); 38 } 39 40 .dropdown-content a{ 41 color:black; 42 padding:12px 16px; 43 text-decoration:none; 44 display:block; 45 } 46 47 .dropdown-content a:hover{ 48 background-color:#F1F1F1; 49 } 50 51 .dropdown:hover .dropdown-content{ 52 display: block; 53 } 54 </style> 55 </head> 56 <body> 57 <ul> 58 <li><a href="#shop" class="active">在線商城</a></li> 59 <li><a href="#news">產品展現</a></li> 60 <div class="dropdown"> 61 <a href="#" class="dropbtn">下拉菜單</a> 62 <div class="dropdown-content"> 63 <a href="#">子菜單 1</a> 64 <a href="#">子菜單 2</a> 65 <a href="#">子菜單 3</a> 66 </div> 67 </div> 68 </ul> 69 </body> 70 </html>
在 Chrome 中當鼠標移入下拉按鈕時顯示以下: