目錄
撰寫純 CSS 彈出式功能表的原則及實作 By shawl.qiu
首頁 web前端 css教學 寫出純 CSS 彈出式選單的原理及實作 By shawl.qiu_經驗交流

寫出純 CSS 彈出式選單的原理及實作 By shawl.qiu_經驗交流

May 16, 2016 pm 12:08 PM
css

撰寫純 CSS 彈出式功能表的原則及實作 By shawl.qiu


#摘要: 
本文介紹了使用 CSS 編寫適用於 Opera, Firefox, IE 的多重彈出式功能表
## #說明:
編寫 CSS 彈出選單的重點不外乎當滑鼠移到目標上時, 顯示隱藏的標籤. 
要隱藏的標籤使用 display:none; 屬性進行隱藏. 
觸發顯示隱藏標籤主要使用 :hover 屬性, 並用 display:block; 顯示隱藏的標籤.

但由於瀏覽器對 CSS 的支援並非一致.
#對於 Opera 或 Firefox, 我們可以寫出純 CSS , 他們支援任何標籤的 :hover 屬性.
而對於 IE 瀏覽器, :hover 只對 a 標籤起作用, 但我們可以使用腳本的 onmouseover, onmouseout 模擬出其他標籤的屬性.
編寫適用於 IE 的 CSS 彈出式功能表必須使用到少許的腳本.

#目錄:
1. 編寫直排右側彈出的 CSS 選單. 
1.1 真正的基於 Opera, CSSrefox  
1.1 真正的基於 Opera, Firefox  
1.1 真正的基於 Opera, Firefox  CSS彈出式選單
1.2 相容 IE, Opera, Firefox 的 CSS 彈出式功能表(腳本實作)

2. 編寫橫排底部彈出的 CSS 功能表. 
2.1 真正的基於彈出式Opera、選單
2.2 相容 IE, Opera, Firefox 的 CSS 彈出式選單(腳本實作)

3. 結論

#4. 預覽

shawl.qiu
4. 預覽

shawl.qiu##2006
#4. 預覽

shawl.qiu##2006
    #4. 預覽shawl.qiu##2006
  1. #4. 預覽
  2. shawl.qiu
  3. #4. 預覽
  4. shawl.qiu##2006
  5. ##4. 預覽
  6. shawl.qiu
  7. ####### -10-01######http://blog.csdn.net/btbtd#########1. 寫直排右邊彈出的 CSS 選單. #######1.1 真正的基於 Opera, Firefox 純 CSS 彈出式選單### ######linenum### ### ### ### ### ###Untitled Document ### ###/*    .pmVerticalRightOut{background-color:#fff!important; /* 定義主選單域背景色 */} 
  8.     .pmVerticalRightOut .level{  /* 定義一級類別屬性 */
  9.         width:120px; /* 寬度 */
  10.         height:17; /* 高度 */
  11.         position:relative; /* 顯示位置為相對位置 */
  12.         display:block; /* 以區塊模式顯示 */
  13.         background-color:#D8D8D8; /* 背景色 */
  14.         padding:0px 2px; /* 文字內補丁間隔 */
  15.         margin:0px 0px 1px 0px; /* 選單外補丁間隔 */
  16.     }
  17.     .pmVerticalRightOut .level:hover { /* 當滑鼠劃過一級選單時 */
  18.         background-color:#6633FF; /* 背景色 */
  19.         color:#FFFFFF; /* 文字顏色 */
  20.     }
  21.     .pmVerticalRightOut .level_{display:none; /* 預設隱藏二級類別 */}
  22.     
  23.     .pmVerticalRightOut .level:hover .level_ { /* 滑鼠劃過時觸發顯示二級類別 */
  24.         display:block; /* 以區塊顯示 */
  25.         left:124px; /* 相對於一級類別所顯示的位置 */
  26.         width:120px; /* 寬度 */
  27.         height:auto; /* 高度 */
  28.         top:0px; /* 相對於一級類別所在位置的頂端 */
  29.         background-color:#EFEFEF; /* 定義背景色 */
  30.         position:absolute; /* 位置為絕對位置 */
  31.     }
  32.     .pmVerticalRightOut .level:hover .level_ .level_title {
  33.         /* 定義二級類別標題樣式 */
  34.         font-weight:bold; /* 字體加粗 */
  35.         background-color:#A7ADFE; /* 背景色 */
  36.         color:white; /* 文字顏色 */
  37.     }
  38.     .pmVerticalRightOut .level:hover .level_ a:hover {
  39.         /* 定義二級類別連結顯示樣式 */
  40.         background-color:#F83658; /* 背景色 */
  41.         color:white; /* 文字顏色 */
  42.     }
  43.     .pmVerticalRightOut .level_ * { 
  44.         /* 定義所有二級類別一般屬性 */
  45.         display:block; /* 以區塊顯示 */
  46.         color:black; /* 文字顏色 */
  47.         padding:0px 2px; /* 內補丁間隔 */
  48.     }
  49. /*]]>*/
  50.     
  51.         level
  •         
  •             level_ title
  •             level_ 標題 1
  •             level_ 標題 2
  •             level_ 標題 3
  •             level_ 標題 4
  •             level_ 標題 5
  •         
  •     
  •     
  •         
    level 1
  •         
  •             level_ title
  •             level_ 標題 1
  •             level_ 標題 2
  •             level_ title 3
  • level_標題4
  •             level_ 標題 5
  •         
  •     
  •     
  •         
    level 2
  •         
  •             level_ title
  •             level_ 標題 1
  •             level_ 標題 2
  •             level_ 標題 3
  •             level_ 標題 4
  •             level_ 標題 5
  •         
  •     
  •     
  •         
    level 3
  •         
  •             level_ title
  •             level_ 標題 1
  •             level_ 標題 2
  • level_ title 3
  •             level_ 標題 4
  •             level_ 標題 5
  •         
  •     
  •     
  •         
    level 4
  •         
  •             level_ title
  •             level_ 標題 1
  •             level_ 標題 2
  •             level_ title 3
  •             level_ 標題 4
  •             level_ 標題 5
  •         
  •     

  • 1.2 相容 IE、Opera、Firefox 的 CSS 彈出式選單(腳本實作)
      linenum
    1. " http://www.w3.org/TR/html4/loose.dtd">
    2. Untitled Document
    3. //if (navigator.appName=="Microsoft Internet Explorer") {
    4.     function fPmVerticalRightOut() {
    5.         var getItem = document.getElementById("pmVerticalRightOut").getElementsByTagName("div");
    6.         for (var i=0; i            getItem[i].onmouseover=function() { 
    7.                 if(    this.className=="level"){
    8.                     this.className="levelIe";
    9.                 }
    10.             }
    11.             getItem[i].onmouseout=function() { 
    12.                 if(    this.className=="levelIe"){
    13.                     this.className="level";
    14.                 }
    15.             }//css彈出式選單腳本作者:shawl.qiu
    16.         }
    17.     }
    18.     window.onload=fPmVerticalRightOut;
    19. }
    20. //]]>
    21.     
    22.         level
    23.         
    24.             level_ title
    25.             level_ 標題 1
    26.             level_ 標題 2
    27.             level_ 標題 3
    28.             level_ 標題 4
    29.             level_ 標題 5
    30.         
    31.     
    32.     
    33.         
      level 1
    34.         
    35.             level_ title
    36.             level_ 標題 1
    37.             level_ 標題 2
    38.             level_ title 3
    39. level_標題4
    40.             level_ 標題 5
    41.         
    42.     
    43.     
    44.         
      level 2
    45.         
    46.             level_ title
    47.             level_ 標題 1
    48.             level_ 標題 2
    49.             level_ 標題 3
    50.             level_ 標題 4
    51.             level_ 標題 5
    52.         
    53.     
    54.     
    55.         
      level 3
    56.         
    57.             level_ title
    58.             level_ 標題 1
    59.             level_ 標題 2
    60. level_ title 3
    61.             level_ 標題 4
    62.             level_ 標題 5
    63.         
    64.     
    65.     
    66.         
      level 4
    67.         
    68.             level_ title
    69.             level_ 標題 1
    70.             level_ 標題 2
    71.             level_ title 3
    72.             level_ 標題 4
    73.             level_ 標題 5
    74.         
    75.     

    #2.編寫了橫底部彈出的 CSS 選單。

    2.1 真正的基於 Opera、Firefox 純 CSS 彈出式選單
      linenum
    1. http://www.w3.org/TR/html4/loose.dtd">
    2. Untitled Document
    3. /*    body{ margin:0px auto; width:768px; /* 定義頁以中顯示,*/}
    4.     *{text-decoration:none!important; /* 定義所有連結不顯示底線 */}
    5.     .pmHorizo​​ntalBottomOut{background-color:#fff!important; /* 定義主選單域背景色 */} 
    6.     .pmHorizo​​ntalBottomOut .level{  /* 定義一級類別屬性 */
    7.         width:120px; /* 寬度 */
    8.         height:17; /* 高度 */
    9.         position:relative; /* 顯示位置為相對位置 */
    10.         display:block; /* 以區塊模式顯示 */
    11.         background-color:#D8D8D8; /* 背景色 */
    12.         padding:0px 2px; /* 文字內補丁間隔 */
    13.         margin:0px 1px 0px 0px; /* 選單外補丁間隔 */
    14.         float:left;
    15.     }
    16.     .pmHorizo​​ntalBottomOut .level:hover { /* 當滑鼠劃過一級選單 */
    17.         background-color:#6633FF; /* 背景色 */
    18.         color:#FFFFFF; /* 文字顏色 */
    19.     }
    20.     .pmHorizo​​ntalBottomOut .level_{display:none; /* 預設隱藏二級類別 */}
    21.     
    22.     .pmHorizo​​ntalBottomOut .level:hover .level_ { /* 滑鼠劃過時觸發顯示二級類別 */
    23.         display:block; /* 以區塊顯示 */
    24.         width:124px; /* 寬度 */
    25.         height:auto; /* 高度 */
    26.         margin:0px -2px 0px -2px; /* 外補丁 */
    27.         background-color:#EFEFEF; /* 定義背景色 */
    28.         position:absolute; /* 位置為絕對位置 */
    29.     }
    30.     .pmHorizo​​ntalBottomOut .level:hover .level_ .level_title {
    31.         /* 定義二級類別標題樣式 */
    32.         font-weight:bold; /* 字體加粗 */
    33.         background-color:#A7ADFE; /* 背景色 */
    34.         color:white; /* 文字顏色 */
    35.     }
    36.     .pmHorizo​​ntalBottomOut .level:hover .level_ a:hover {
    37.         /* 定義二級類別連結顯示樣式 */
    38.         background-color:#F83658; /* 背景色 */
    39.         color:white; /* 文字顏色 */
    40.     }
    41.     .pmHorizo​​ntalBottomOut .level_ * { 
    42.         /* 定義所有二級類別一般屬性 */
    43.         display:block; /* 以區塊顯示 */
    44.         color:black; /* 文字顏色 */
    45.         padding:0px 2px; /* 內補丁間隔 */
    46.     }
    47. /*]]>*/
    48.     
    49.         level
    50.         
    51.             level_ title
    52.             level_ 標題 1
    53.             level_ 標題 2
    54.             level_ 標題 3
    55.             level_ 標題 4
    56.             level_ 標題 5
    57.         
    58.     
    59.     
    60.         
      level 1
    61.         
    62.             level_ title
    63.             level_ 標題 1
    64.             level_ 標題 2
    65.             level_ title 3
    66. level_標題4
    67.             level_ 標題 5
    68.         
    69.     
    70.     
    71.         
      level 2
    72.         
    73.             level_ title
    74.             level_ 標題 1
    75.             level_ 標題 2
    76.             level_ 標題 3
    77.             level_ 標題 4
    78.             level_ 標題 5
    79.         
    80.     
    81.     
    82.         
      level 3
    83.         
    84.             level_ title
    85.             level_ 標題 1
    86.             level_ 標題 2
    87. level_ title 3
    88.             level_ 標題 4
    89.             level_ 標題 5
    90.         
    91.     
    92.     
    93.         
      level 4
    94.         
    95.             level_ title
    96.             level_ 標題 1
    97.             level_ 標題 2
    98.             level_ title 3
    99.             level_ 標題 4
    100.             level_ 標題 5
    101.         
    102.     

    2.2 相容 IE、Opera、Firefox 的 CSS 彈出式選單(腳本實作)
      linenum
    1. " http://www.w3.org/TR/html4/loose.dtd">
    2. Untitled Document
    3. /*    body{ margin:0px auto; width:768px; /* 定義頁以中顯示,*/}
    4.     *{text-decoration:none!important; /* 定義所有連結不顯示底線 */}
    5.     /* ------------------ start 針對 Opera, Firefox 的 CSS 彈出式選單 ----------------- --*/
    6.     .pmHorizo​​ntalBottomOut{background-color:#fff!important; /* 定義主選單域背景色 */} 
    7.     .pmHorizo​​ntalBottomOut .level{  /* 定義一級類別屬性 */
    8.         width:120px; /* 寬度 */
    9.         height:17; /* 高度 */
    10.         position:relative; /* 顯示位置為相對位置 */
    11.         display:block; /* 以區塊模式顯示 */
    12.         background-color:#D8D8D8; /* 背景色 */
    13.         padding:0px 2px; /* 文字內補丁間隔 */
    14.         margin:0px 1px 0px 0px; /* 選單外補丁間隔 */
    15.         float:left;
    16.     }
    17.     .pmHorizo​​ntalBottomOut .level:hover { /* 當滑鼠劃過一級選單 */
    18.         background-color:#6633FF; /* 背景色 */
    19.         color:#FFFFFF; /* 文字顏色 */
    20.     }
    21.     .pmHorizo​​ntalBottomOut .level_{display:none; /* 預設隱藏二級類別 */}
    22.     
    23.     .pmHorizo​​ntalBottomOut .level:hover .level_ { /* 滑鼠劃過時觸發顯示二級類別 */
    24.         display:block; /* 以區塊顯示 */
    25.         width:124px; /* 寬度 */
    26.         height:auto; /* 高度 */
    27.         margin:0px -2px 0px -2px; /* 外補丁 */
    28.         background-color:#EFEFEF; /* 定義背景色 */
    29.         position:absolute; /* 位置為絕對位置 */
    30.     }
    31.     .pmHorizo​​ntalBottomOut .level:hover .level_ .level_title {
    32.         /* 定義二級類別標題樣式 */
    33.         font-weight:bold; /* 字體加粗 */
    34.         background-color:#A7ADFE; /* 背景色 */
    35.         color:white; /* 文字顏色 */
    36.     }
    37.     .pmHorizo​​ntalBottomOut .level:hover .level_ a:hover {
    38.         /* 定義二級類別連結顯示樣式 */
    39.         background-color:#F83658; /* 背景色 */
    40.         color:white; /* 文字顏色 */
    41.     }
    42.     .pmHorizo​​ntalBottomOut .level_ * { 
    43.         /* 定義所有二級類別一般屬性 */
    44.         display:block; /* 以區塊顯示 */
    45.         color:black; /* 文字顏色 */
    46.         padding:0px 2px; /* 內補丁間隔 */
    47.     }
    48.     /* ------------------ end 針對 Opera, Firefox 的 CSS 彈出式選單 ----------------- --*/
    49.     
    50.     /* ------------------- start 針對 IE 的 CSS 彈出式選單 -------------------- */
    51.     .levelIe{  /* 定義一級類別屬性 */
    52.         width:120px; /* 寬度 */
    53.         height:17; /* 高度 */
    54.         position:relative; /* 顯示位置為相對位置 */
    55.         display:block; /* 以區塊模式顯示 */
    56.         background-color:#D8D8D8; /* 背景色 */
    57.         padding:0px 2px; /* 文字內補丁間隔 */
    58.         margin:0px 1px 0px 0px; /* 選單外補丁間隔 */
    59.         float:left;
    60.     }
    61.     .levelIe { /* 當滑鼠劃過一級選單時 */
    62.         background-color:#6633FF; /* 背景色 */
    63.         color:#FFFFFF; /* 文字顏色 */
    64.     }
    65.     .levelIe .level_ { /* 滑鼠劃過時觸發顯示二級類別 */
    66.         display:block; /* 以區塊顯示 */
    67.         width:124px; /* 寬度 */
    68.         height:auto; /* 高度 */
    69.         margin:0px -2px 0px -2px; /* 外補丁 */
    70.         background-color:#EFEFEF; /* 定義背景色 */
    71.         position:absolute; /* 位置為絕對位置 */
    72.     }
    73.     .levelIe .level_ .level_title {
    74.         /* 定義二級類別標題樣式 */
    75.         font-weight:bold; /* 字體加粗 */
    76.         background-color:#A7ADFE; /* 背景色 */
    77.         color:white; /* 文字顏色 */
    78.     }
    79.     .levelIe .level_ a:hover {
    80.         /* 定義二級類別連結顯示樣式 */
    81.         background-color:#F83658; /* 背景色 */
    82.         color:white; /* 文字顏色 */
    83.     }
    84.     .levelIe .level_ * { 
    85.         /* 定義所有二級類別一般屬性 */
    86.         display:block; /* 以區塊顯示 */
    87.         color:black; /* 文字顏色 */
    88.         padding:0px 2px; /* 內補丁間隔 */
    89.     }
    90.     /* ------------------- end 針對 IE 的 CSS 彈出式選單 -------------------- */
    91. /*]]>*/
    92. //if (navigator.appName=="Microsoft Internet Explorer") {
    93.     function fPmHorizo​​ntalBottomOut() {
    94.         var getItem = document.getElementById("pmHorizo​​ntalBottomOut").getElementsByTagName("div");
    95.         for (var i=0; i            getItem[i].onmouseover=function() { 
    96.                 if(    this.className=="level"){
    97.                     this.className="levelIe";
    98.                 }
    99.             }
    100.             getItem[i].onmouseout=function() { 
    101.                 if(    this.className=="levelIe"){
    102.                     this.className="level";
    103.                 }
    104.             }//css彈出式選單腳本作者:shawl.qiu
    105.         }
    106.     }
    107.     window.onload=fPmHorizo​​ntalBottomOut;
    108. }
    109. //]]>
    110.     
    111.         level
    112.         
    113.             level_ title
    114.             level_ 標題 1
    115.             level_ 標題 2
    116.             level_ 標題 3
    117.             level_ 標題 4
    118.             level_ 標題 5
    119.         
    120.     
    121.     
    122.         
      level 1
    123.         
    124.             level_ title
    125.             level_ 標題 1
    126.             level_ 標題 2
    127.             level_ title 3
    128. level_標題4
    129.             level_ 標題 5
    130.         
    131.     
    132.     
    133.         
      level 2
    134.         
    135.             level_ title
    136.             level_ 標題 1
    137.             level_ 標題 2
    138.             level_ 標題 3
    139.             level_ 標題 4
    140.             level_ 標題 5
    141.         
    142.     
    143.     
    144.         
      level 3
    145.         
    146.             level_ title
    147.             level_ 標題 1
    148.             level_ 標題 2
    149. level_ title 3
    150.             level_ 標題 4
    151.             level_ 標題 5
    152.         
    153.     
    154.     
    155.         
      level 4
    156.         
    157.             level_ title
    158.             level_ 標題 1
    159.             level_ 標題 2
    160.             level_ title 3
    161.             level_ 標題 4
    162.             level_ 標題 5
    163.         
    164.     


    3.結論
    修改以上範例可以看出,如果已經編寫出了一個可用的CSS彈出選單範例,那就要編寫出彈出位置在其他位置的CSS彈出選單的話,只需小小一下就OK了。

    4。預覽

    4.1 1.2 相容 IE、Opera、Firefox 的 CSS 彈出式選單(腳本實作)的預覽
    本網站聲明
    本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

    熱AI工具

    Undresser.AI Undress

    Undresser.AI Undress

    人工智慧驅動的應用程序,用於創建逼真的裸體照片

    AI Clothes Remover

    AI Clothes Remover

    用於從照片中去除衣服的線上人工智慧工具。

    Undress AI Tool

    Undress AI Tool

    免費脫衣圖片

    Clothoff.io

    Clothoff.io

    AI脫衣器

    Video Face Swap

    Video Face Swap

    使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

    熱工具

    記事本++7.3.1

    記事本++7.3.1

    好用且免費的程式碼編輯器

    SublimeText3漢化版

    SublimeText3漢化版

    中文版,非常好用

    禪工作室 13.0.1

    禪工作室 13.0.1

    強大的PHP整合開發環境

    Dreamweaver CS6

    Dreamweaver CS6

    視覺化網頁開發工具

    SublimeText3 Mac版

    SublimeText3 Mac版

    神級程式碼編輯軟體(SublimeText3)

    熱門話題

    Java教學
    1664
    14
    CakePHP 教程
    1421
    52
    Laravel 教程
    1315
    25
    PHP教程
    1266
    29
    C# 教程
    1239
    24
    vue中怎麼用bootstrap vue中怎麼用bootstrap Apr 07, 2025 pm 11:33 PM

    在 Vue.js 中使用 Bootstrap 分為五個步驟:安裝 Bootstrap。在 main.js 中導入 Bootstrap。直接在模板中使用 Bootstrap 組件。可選:自定義樣式。可選:使用插件。

    了解HTML,CSS和JavaScript:初學者指南 了解HTML,CSS和JavaScript:初學者指南 Apr 12, 2025 am 12:02 AM

    WebDevelovermentReliesonHtml,CSS和JavaScript:1)HTMLStructuresContent,2)CSSStyleSIT和3)JavaScriptAddSstractivity,形成thebasisofmodernWebemodernWebExexperiences。

    HTML,CSS和JavaScript的角色:核心職責 HTML,CSS和JavaScript的角色:核心職責 Apr 08, 2025 pm 07:05 PM

    HTML定義網頁結構,CSS負責樣式和佈局,JavaScript賦予動態交互。三者在網頁開發中各司其職,共同構建豐富多彩的網站。

    bootstrap怎麼插入圖片 bootstrap怎麼插入圖片 Apr 07, 2025 pm 03:30 PM

    在 Bootstrap 中插入圖片有以下幾種方法:直接插入圖片,使用 HTML 的 img 標籤。使用 Bootstrap 圖像組件,可以提供響應式圖片和更多樣式。設置圖片大小,使用 img-fluid 類可以使圖片自適應。設置邊框,使用 img-bordered 類。設置圓角,使用 img-rounded 類。設置陰影,使用 shadow 類。調整圖片大小和位置,使用 CSS 樣式。使用背景圖片,使用 background-image CSS 屬性。

    bootstrap怎麼寫分割線 bootstrap怎麼寫分割線 Apr 07, 2025 pm 03:12 PM

    創建 Bootstrap 分割線有兩種方法:使用 標籤,可創建水平分割線。使用 CSS border 屬性,可創建自定義樣式的分割線。

    bootstrap怎麼設置框架 bootstrap怎麼設置框架 Apr 07, 2025 pm 03:27 PM

    要設置 Bootstrap 框架,需要按照以下步驟:1. 通過 CDN 引用 Bootstrap 文件;2. 下載文件並將其託管在自己的服務器上;3. 在 HTML 中包含 Bootstrap 文件;4. 根據需要編譯 Sass/Less;5. 導入定製文件(可選)。設置完成後,即可使用 Bootstrap 的網格系統、組件和样式創建響應式網站和應用程序。

    bootstrap怎麼調整大小 bootstrap怎麼調整大小 Apr 07, 2025 pm 03:18 PM

    要調整 Bootstrap 中元素大小,可以使用尺寸類,具體包括:調整寬度:.col-、.w-、.mw-調整高度:.h-、.min-h-、.max-h-

    bootstrap按鈕怎麼用 bootstrap按鈕怎麼用 Apr 07, 2025 pm 03:09 PM

    如何使用 Bootstrap 按鈕?引入 Bootstrap CSS創建按鈕元素並添加 Bootstrap 按鈕類添加按鈕文本

    See all articles