CSS 下拉菜單

  使用 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 中當鼠標移入下拉按鈕時顯示以下:

相關文章
相關標籤/搜索