0

0

编写纯 CSS 弹出菜单的原理及实现 By shawl.qiu_经验交流

php中文网

php中文网

发布时间:2016-05-16 12:08:46

|

5596人浏览过

|

来源于php中文网

原创

编写纯 CSS 弹出菜单的原理及实现 By shawl.qiu


摘要: 
本文介绍了使用 CSS 编写适用于 Opera, Firefox, IE 的多风格弹出菜单

说明:
编写 CSS 弹出菜单的要点不外乎当鼠标移到目标上时, 显示出隐藏的标签. 
要隐藏的标签使用 display:none; 属性进行隐藏. 
触发显示隐藏标签主要使用 :hover 属性, 并用 display:block; 显示隐藏的标签.

但由于浏览器对 CSS 的支持并非一致.
对于 Opera 或者 Firefox, 我们可以编写出纯 CSS 菜单, 他们支持任何标签的 :hover 属性.
而对于 IE 浏览器, :hover 只对 a 标签起作用, 但我们可以使用脚本的 onmouseover, onmouseout 模拟出其他标签的 :hover 属性.
因此编写适用于 IE 的 CSS 弹出菜单必须使用到少许的脚本.

目录:
1. 编写直排右侧弹出的 CSS 菜单. 
1.1 真正的基于 Opera, Firefox 纯 CSS 弹出菜单
1.2 兼容 IE, Opera, Firefox 的 CSS 弹出菜单(脚本实现)

2. 编写横排底部弹出的 CSS 菜单. 
2.1 真正的基于 Opera, Firefox 纯 CSS 弹出菜单
2.2 兼容 IE, Opera, Firefox 的 CSS 弹出菜单(脚本实现)

3. 结论

4. 预览

shawl.qiu
2006-10-01
http://blog.csdn.net/btbtd

1. 编写直排右侧弹出的 CSS 菜单. 

1.1 真正的基于 Opera, Firefox 纯 CSS 弹出菜单
    linenum
  1. HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
  2. http://www.w3.org/TR/html4/loose.dtd">
  3. Untitled Document
  4. /*
  5.     body{ margin:0px auto; width:768px; /* 定义页面居中显示,*/}
  6.     *{text-decoration:none!important; /* 定义所有链接不显示下划线 */}
  7.     .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:124124px; /* 相对于一级类别显示的位置 */
  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. Dora
    Dora

    创建令人惊叹的3D动画网站,无需编写一行代码。

    下载

  51.     
  52.         
    level
  53.         
  54.             
    level_ title
  55.             level_ title 1
  56.             level_ title 2
  57.             level_ title 3
  58.             level_ title 4
  59.             level_ title 5
  60.         
  •     
  •     
  •         
    level 1
  •         
  •             
    level_ title
  •             level_ title 1
  •             level_ title 2
  •             level_ title 3
  •             http://www.w3.org/TR/html4/loose.dtd0
  •             http://www.w3.org/TR/html4/loose.dtd1
  •         
  •     
  •     
  •         
    level 2
  •         
  •             
    level_ title
  •             http://www.w3.org/TR/html4/loose.dtd2
  •             http://www.w3.org/TR/html4/loose.dtd3
  •             http://www.w3.org/TR/html4/loose.dtd4
  •             http://www.w3.org/TR/html4/loose.dtd5
  •             http://www.w3.org/TR/html4/loose.dtd6
  •         
  •     
  •     
  •         
    level 3
  •         
  •             
    level_ title
  •             http://www.w3.org/TR/html4/loose.dtd7
  •             http://www.w3.org/TR/html4/loose.dtd8
  •             http://www.w3.org/TR/html4/loose.dtd9
  •             level_ title 10
  •             level_ title 11
  •         
  •     
  •     
  •         
    level 4
  •         
  •             
    level_ title
  •             level_ title 12
  •             level_ title 13
  •             level_ title 14
  •             level_ title 15
  •             level_ title 16
  •         
  •     

  • 1.2 兼容 IE, Opera, Firefox 的 CSS 弹出菜单(脚本实现)
      linenum
    1. HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    2. http://www.w3.org/TR/html4/loose.dtd">
    3. Untitled Document
    4. /*
    5.     body{ margin:0px auto; width:768px; /* 定义页面居中显示,*/}
    6.     *{text-decoration:none!important; /* 定义所有链接不显示下划线 */}
    7.     /* ------------------- start 针对 Opera, Firefox 的 CSS 弹出菜单 -------------------*/
    8.     .pmVerticalRightOut{background-color:#fff!important; /* 定义主菜单域背景色 */} 
    9.     .pmVerticalRightOut .level{  /* 定义一级类别属性 */
    10.         width:120px; /* 宽度 */
    11.         height:17; /* 高度 */
    12.         position:relative; /* 显示位置为相对位置 */
    13.         display:block; /* 以块模式显示 */
    14.         background-color:#D8D8D8; /* 背景色 */
    15.         padding:0px 2px; /* 文字内补丁间隔 */
    16.         margin:0px 0px 1px 0px; /* 菜单外补丁间隔 */
    17.     }
    18.     .pmVerticalRightOut .level:hover { /* 当鼠标划过一级菜单时 */
    19.         background-color:#6633FF; /* 背景色 */
    20.         color:#FFFFFF; /* 文字颜色 */
    21.     }
    22.     .pmVerticalRightOut .level_{display:none; /* 默认隐藏二级类别 */}
    23.     
    24.     .pmVerticalRightOut .level:hover .level_ { /* 鼠标划过时触发显示二级类别 */
    25.         display:block; /* 以块显示 */
    26.         left:124124px; /* 相对于一级类别显示的位置 */
    27.         width:120px; /* 宽度 */
    28.         height:auto; /* 高度 */
    29.         top:0px; /* 相对于一级类别所在位置的顶端 */
    30.         background-color:#EFEFEF; /* 定义背景色 */
    31.         position:absolute; /* 位置为绝对位置 */
    32.     }
    33.     .pmVerticalRightOut .level:hover .level_ .level_title {
    34.         /* 定义二级类别标题样式 */
    35.         font-weight:bold; /* 字体加粗 */
    36.         background-color:#A7ADFE; /* 背景色 */
    37.         color:white; /* 文字颜色 */
    38.     }
    39.     .pmVerticalRightOut .level:hover .level_ a:hover {
    40.         /* 定义二级类别链接显示样式 */
    41.         background-color:#F83658; /* 背景色 */
    42.         color:white; /* 文字颜色 */
    43.     }
    44.     .pmVerticalRightOut .level:hover .level_ * { 
    45.         /* 定义所有二级类别通用属性 */
    46.         display:block; /* 以块显示 */
    47.         color:black; /* 文字颜色 */
    48.         padding:0px 2px; /* 内补丁间隔 */
    49.     }
    50.     /* ------------------- end 针对 Opera, Firefox 的 CSS 弹出菜单 -------------------*/
    51.     
    52.     /* ------------------- start 针对 IE 的 CSS 弹出菜单 -------------------*/
    53.     .levelIe{  /* 定义一级类别属性 */
    54.         width:120px; /* 宽度 */
    55.         height:17; /* 高度 */
    56.         position:relative; /* 显示位置为相对位置 */
    57.         display:block; /* 以块模式显示 */
    58.         background-color:#D8D8D8; /* 背景色 */
    59.         padding:0px 2px; /* 文字内补丁间隔 */
    60.         margin:0px 0px 1px 0px; /* 菜单外补丁间隔 */
    61.     }
    62.     .levelIe .level_ { /* 鼠标划过时触发显示二级类别 */
    63.         display:block; /* 以块显示 */
    64.         left:124124px; /* 相对于一级类别显示的位置 */
    65.         width:120px; /* 宽度 */
    66.         height:auto; /* 高度 */
    67.         top:0px; /* 相对于一级类别所在位置的顶端 */
    68.         background-color:#EFEFEF; /* 定义背景色 */
    69.         position:absolute; /* 位置为绝对位置 */
    70.     }
    71.     .levelIe .level_ .level_title {
    72.         /* 定义二级类别标题样式 */
    73.         font-weight:bold; /* 字体加粗 */
    74.         background-color:#A7ADFE; /* 背景色 */
    75.         color:white; /* 文字颜色 */
    76.     }
    77.     .levelIe .level_ a:hover {
    78.         /* 定义二级类别链接显示样式 */
    79.         background-color:#F83658; /* 背景色 */
    80.         color:white; /* 文字颜色 */
    81.     }
    82.     .levelIe .level_ * { 
    83.         /* 定义所有二级类别通用属性 */
    84.         display:block; /* 以块显示 */
    85.         color:black; /* 文字颜色 */
    86.         padding:0px 2px; /* 内补丁间隔 */
    87.     }
    88.     /* ------------------- end 针对 IE 的 CSS 弹出菜单 -------------------*/
    89. /*]]>*/
    90. <script> </script>
    91. //
    92. if (navigator.appName=="Microsoft Internet Explorer") {
    93.     function fPmVerticalRightOut() {
    94.         var getItem = document.getElementById("pmVerticalRightOut").getElementsByTagName("div");
    95.         for (var i=0; i
    96.             getItem[i].onmouseover=function() { 
    97.                 if(    this.className=="level"){
    98.                     this.className="levelIe";
    99.                 }
    100.             }
    101.             getItem[i].onmouseout=function() { 
    102.                 if(    this.className=="levelIe"){
    103.                     this.className="level";
    104.                 }
    105.             }//css popup menu script by shawl.qiu
    106.         }
    107.     }
    108.     window.onload=fPmVerticalRightOut;
    109. }
    110. //]]>
    111.     
    112.         
      level
    113.         
    114.             
      level_ title
    115.             level_ title 1
    116.             level_ title 2
    117.             level_ title 3
    118.             level_ title 4
    119.             level_ title 5
    120.         
    121.     
    122.     
    123.         
      level 1
    124.         
    125.             
      level_ title
    126.             level_ title 1
    127.             level_ title 2
    128.             level_ title 3
    129.             http://www.w3.org/TR/html4/loose.dtd0
    130.             http://www.w3.org/TR/html4/loose.dtd1
    131.         
    132.     
    133.     
    134.         
      level 2
    135.         
    136.             
      level_ title
    137.             http://www.w3.org/TR/html4/loose.dtd2
    138.             http://www.w3.org/TR/html4/loose.dtd3
    139.             http://www.w3.org/TR/html4/loose.dtd4
    140.             http://www.w3.org/TR/html4/loose.dtd5
    141.             http://www.w3.org/TR/html4/loose.dtd6
    142.         
    143.     
    144.     
    145.         
      level 3
    146.         
    147.             
      level_ title
    148.             http://www.w3.org/TR/html4/loose.dtd7
    149.             http://www.w3.org/TR/html4/loose.dtd8
    150.             http://www.w3.org/TR/html4/loose.dtd9
    151.             level_ title 10
    152.             level_ title 11
    153.         
    154.     
    155.     
    156.         
      level 4
    157.         
    158.             
      level_ title
    159.             level_ title 12
    160.             level_ title 13
    161.             level_ title 14
    162.             level_ title 15
    163.             level_ title 16
    164.         
    165.     

    2. 编写横排底部弹出的 CSS 菜单. 

    2.1 真正的基于 Opera, Firefox 纯 CSS 弹出菜单
      linenum
    1. HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    2. http://www.w3.org/TR/html4/loose.dtd">
    3. Untitled Document
    4. /*
    5.     body{ margin:0px auto; width:768px; /* 定义页面居中显示,*/}
    6.     *{text-decoration:none!important; /* 定义所有链接不显示下划线 */}
    7.     .pmHorizontalBottomOut{background-color:#fff!important; /* 定义主菜单域背景色 */} 
    8.     .pmHorizontalBottomOut .level{  /* 定义一级类别属性 */
    9.         width:120px; /* 宽度 */
    10.         height:17; /* 高度 */
    11.         position:relative; /* 显示位置为相对位置 */
    12.         display:block; /* 以块模式显示 */
    13.         background-color:#D8D8D8; /* 背景色 */
    14.         padding:0px 2px; /* 文字内补丁间隔 */
    15.         margin:0px 1px 0px 0px; /* 菜单外补丁间隔 */
    16.         float:left;
    17.     }
    18.     .pmHorizontalBottomOut .level:hover { /* 当鼠标划过一级菜单时 */
    19.         background-color:#6633FF; /* 背景色 */
    20.         color:#FFFFFF; /* 文字颜色 */
    21.     }
    22.     .pmHorizontalBottomOut .level_{display:none; /* 默认隐藏二级类别 */}
    23.     
    24.     .pmHorizontalBottomOut .level:hover .level_ { /* 鼠标划过时触发显示二级类别 */
    25.         display:block; /* 以块显示 */
    26.         width:124124px; /* 宽度 */
    27.         height:auto; /* 高度 */
    28.         margin:0px -2px 0px -2px; /* 外补丁 */
    29.         background-color:#EFEFEF; /* 定义背景色 */
    30.         position:absolute; /* 位置为绝对位置 */
    31.     }
    32.     .pmHorizontalBottomOut .level:hover .level_ .level_title {
    33.         /* 定义二级类别标题样式 */
    34.         font-weight:bold; /* 字体加粗 */
    35.         background-color:#A7ADFE; /* 背景色 */
    36.         color:white; /* 文字颜色 */
    37.     }
    38.     .pmHorizontalBottomOut .level:hover .level_ a:hover {
    39.         /* 定义二级类别链接显示样式 */
    40.         background-color:#F83658; /* 背景色 */
    41.         color:white; /* 文字颜色 */
    42.     }
    43.     .pmHorizontalBottomOut .level_ * { 
    44.         /* 定义所有二级类别通用属性 */
    45.         display:block; /* 以块显示 */
    46.         color:black; /* 文字颜色 */
    47.         padding:0px 2px; /* 内补丁间隔 */
    48.     }
    49. /*]]>*/
    50.     
    51.         
      level
    52.         
    53.             
      level_ title
    54.             level_ title 1
    55.             level_ title 2
    56.             level_ title 3
    57.             level_ title 4
    58.             level_ title 5
    59.         
    60.     
    61.     
    62.         
      level 1
    63.         
    64.             
      level_ title
    65.             level_ title 1
    66.             level_ title 2
    67.             level_ title 3
    68.             http://www.w3.org/TR/html4/loose.dtd0
    69.             http://www.w3.org/TR/html4/loose.dtd1
    70.         
    71.     
    72.     
    73.         
      level 2
    74.         
    75.             
      level_ title
    76.             http://www.w3.org/TR/html4/loose.dtd2
    77.             http://www.w3.org/TR/html4/loose.dtd3
    78.             http://www.w3.org/TR/html4/loose.dtd4
    79.             http://www.w3.org/TR/html4/loose.dtd5
    80.             http://www.w3.org/TR/html4/loose.dtd6
    81.         
    82.     
    83.     
    84.         
      level 3
    85.         
    86.             
      level_ title
    87.             http://www.w3.org/TR/html4/loose.dtd7
    88.             http://www.w3.org/TR/html4/loose.dtd8
    89.             http://www.w3.org/TR/html4/loose.dtd9
    90.             level_ title 10
    91.             level_ title 11
    92.         
    93.     
    94.     
    95.         
      level 4
    96.         
    97.             
      level_ title
    98.             level_ title 12
    99.             level_ title 13
    100.             level_ title 14
    101.             level_ title 15
    102.             level_ title 16
    103.         
    104.     

    2.2 兼容 IE, Opera, Firefox 的 CSS 弹出菜单(脚本实现)
      linenum
    1. HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    2. " http://www.w3.org/TR/html4/loose.dtd">
    3. Untitled Document
    4. /*
    5.     body{ margin:0px auto; width:768px; /* 定义页面居中显示,*/}
    6.     *{text-decoration:none!important; /* 定义所有链接不显示下划线 */}
    7.     /* ------------------- start 针对 Opera, Firefox 的 CSS 弹出菜单 -------------------*/
    8.     .pmHorizontalBottomOut{background-color:#fff!important; /* 定义主菜单域背景色 */} 
    9.     .pmHorizontalBottomOut .level{  /* 定义一级类别属性 */
    10.         width:120px; /* 宽度 */
    11.         height:17; /* 高度 */
    12.         position:relative; /* 显示位置为相对位置 */
    13.         display:block; /* 以块模式显示 */
    14.         background-color:#D8D8D8; /* 背景色 */
    15.         padding:0px 2px; /* 文字内补丁间隔 */
    16.         margin:0px 1px 0px 0px; /* 菜单外补丁间隔 */
    17.         float:left;
    18.     }
    19.     .pmHorizontalBottomOut .level:hover { /* 当鼠标划过一级菜单时 */
    20.         background-color:#6633FF; /* 背景色 */
    21.         color:#FFFFFF; /* 文字颜色 */
    22.     }
    23.     .pmHorizontalBottomOut .level_{display:none; /* 默认隐藏二级类别 */}
    24.     
    25.     .pmHorizontalBottomOut .level:hover .level_ { /* 鼠标划过时触发显示二级类别 */
    26.         display:block; /* 以块显示 */
    27.         width:124124px; /* 宽度 */
    28.         height:auto; /* 高度 */
    29.         margin:0px -2px 0px -2px; /* 外补丁 */
    30.         background-color:#EFEFEF; /* 定义背景色 */
    31.         position:absolute; /* 位置为绝对位置 */
    32.     }
    33.     .pmHorizontalBottomOut .level:hover .level_ .level_title {
    34.         /* 定义二级类别标题样式 */
    35.         font-weight:bold; /* 字体加粗 */
    36.         background-color:#A7ADFE; /* 背景色 */
    37.         color:white; /* 文字颜色 */
    38.     }
    39.     .pmHorizontalBottomOut .level:hover .level_ a:hover {
    40.         /* 定义二级类别链接显示样式 */
    41.         background-color:#F83658; /* 背景色 */
    42.         color:white; /* 文字颜色 */
    43.     }
    44.     .pmHorizontalBottomOut .level_ * { 
    45.         /* 定义所有二级类别通用属性 */
    46.         display:block; /* 以块显示 */
    47.         color:black; /* 文字颜色 */
    48.         padding:0px 2px; /* 内补丁间隔 */
    49.     }
    50.     /* ------------------- end 针对 Opera, Firefox 的 CSS 弹出菜单 -------------------*/
    51.     
    52.     /* ------------------- start 针对 IE 的 CSS 弹出菜单 -------------------*/
    53.     .levelIe{  /* 定义一级类别属性 */
    54.         width:120px; /* 宽度 */
    55.         height:17; /* 高度 */
    56.         position:relative; /* 显示位置为相对位置 */
    57.         display:block; /* 以块模式显示 */
    58.         background-color:#D8D8D8; /* 背景色 */
    59.         padding:0px 2px; /* 文字内补丁间隔 */
    60.         margin:0px 1px 0px 0px; /* 菜单外补丁间隔 */
    61.         float:left;
    62.     }
    63.     .levelIe { /* 当鼠标划过一级菜单时 */
    64.         background-color:#6633FF; /* 背景色 */
    65.         color:#FFFFFF; /* 文字颜色 */
    66.     }
    67.     .levelIe .level_ { /* 鼠标划过时触发显示二级类别 */
    68.         display:block; /* 以块显示 */
    69.         width:124124px; /* 宽度 */
    70.         height:auto; /* 高度 */
    71.         margin:0px -2px 0px -2px; /* 外补丁 */
    72.         background-color:#EFEFEF; /* 定义背景色 */
    73.         position:absolute; /* 位置为绝对位置 */
    74.     }
    75.     .levelIe .level_ .level_title {
    76.         /* 定义二级类别标题样式 */
    77.         font-weight:bold; /* 字体加粗 */
    78.         background-color:#A7ADFE; /* 背景色 */
    79.         color:white; /* 文字颜色 */
    80.     }
    81.     .levelIe .level_ a:hover {
    82.         /* 定义二级类别链接显示样式 */
    83.         background-color:#F83658; /* 背景色 */
    84.         color:white; /* 文字颜色 */
    85.     }
    86.     .levelIe .level_ * { 
    87.         /* 定义所有二级类别通用属性 */
    88.         display:block; /* 以块显示 */
    89.         color:black; /* 文字颜色 */
    90.         padding:0px 2px; /* 内补丁间隔 */
    91.     }
    92.     /* ------------------- end 针对 IE 的 CSS 弹出菜单 -------------------*/
    93. /*]]>*/
    94. <script> </script>
    95. //
    96. if (navigator.appName=="Microsoft Internet Explorer") {
    97.     function fPmHorizontalBottomOut() {
    98.         var getItem = document.getElementById("pmHorizontalBottomOut").getElementsByTagName("div");
    99.         for (var i=0; i
    100.             getItem[i].onmouseover=function() { 
    101.                 if(    this.className=="level"){
    102.                     this.className="levelIe";
    103.                 }
    104.             }
    105.             getItem[i].onmouseout=function() { 
    106.                 if(    this.className=="levelIe"){
    107.                     this.className="level";
    108.                 }
    109.             }//css popup menu script by shawl.qiu
    110.         }
    111.     }
    112.     window.onload=fPmHorizontalBottomOut;
    113. }
    114. //]]>
    115.     
    116.         
      level
    117.         
    118.             
      level_ title
    119.             level_ title 1
    120.             level_ title 2
    121.             level_ title 3
    122.             level_ title 4
    123.             level_ title 5
    124.         
    125.     
    126.     
    127.         
      level 1
    128.         
    129.             
      level_ title
    130.             level_ title 1
    131.             level_ title 2
    132.             level_ title 3
    133.             http://www.w3.org/TR/html4/loose.dtd0
    134.             http://www.w3.org/TR/html4/loose.dtd1
    135.         
    136.     
    137.     
    138.         
      level 2
    139.         
    140.             
      level_ title
    141.             http://www.w3.org/TR/html4/loose.dtd2
    142.             http://www.w3.org/TR/html4/loose.dtd3
    143.             http://www.w3.org/TR/html4/loose.dtd4
    144.             http://www.w3.org/TR/html4/loose.dtd5
    145.             http://www.w3.org/TR/html4/loose.dtd6
    146.         
    147.     
    148.     
    149.         
      level 3
    150.         
    151.             
      level_ title
    152.             http://www.w3.org/TR/html4/loose.dtd7
    153.             http://www.w3.org/TR/html4/loose.dtd8
    154.             http://www.w3.org/TR/html4/loose.dtd9
    155.             level_ title 10
    156.             level_ title 11
    157.         
    158.     
    159.     
    160.         
      level 4
    161.         
    162.             
      level_ title
    163.             level_ title 12
    164.             level_ title 13
    165.             level_ title 14
    166.             level_ title 15
    167.             level_ title 16
    168.         
    169.     


    3. 结论
    以上例子可以看出, 如果已经编写出一个可用的CSS弹出菜单例子, 那要编写出弹出位置在其他地方的 CSS 弹出菜单的话, 只须小小修改一下就 OK. 

    4. 预览

    4.1 1.2 兼容 IE, Opera, Firefox 的 CSS 弹出菜单(脚本实现) 的预览
    <script type="text/javascript"> //<![CDATA[ if (navigator.appName=="Microsoft Internet Explorer") { function fPmVerticalRightOut() { var getItem = document.getElementById("pmVerticalRightOut").getElementsByTagName("div"); for (var i=0; i<getItem.length; i++) { getItem[i].onmouseover=function() { if( this.className=="level"){ this.className="levelIe"; } } getItem[i].onmouseout=function() { if( this.className=="levelIe"){ this.className="level"; } }//css popup menu script by shawl.qiu } } function fPmHorizontalBottomOut() { var getItem = document.getElementById("pmHorizontalBottomOut").getElementsByTagName("div"); for (var i=0; i<getItem.length; i++) { getItem[i].onmouseover=function() { if( this.className=="level"){ this.className="levelIe"; } } getItem[i].onmouseout=function() { if( this.className=="levelIe"){ this.className="level"; } }//css popup menu script by shawl.qiu } } //window.onload=fPmHorizontalBottomOut; window.onload=fPmVerticalRightOut,fPmHorizontalBottomOut; } //]]> </script>

    相关文章

    CSS如何引入特定组件样式_在Vue单文件组件中编写css

    CSS如何利用Sass的Variable Defaults实现默认覆盖_编写易于集成的css插件

    CSS如何使用Stylelint工具规范团队代码格式_自动检测并修复css编写规范

    CSS如何处理大项目样式冲突_采用BEM命名法编写CSS文件

    CSS如何利用Sass的Percentage函数实现网格列宽_通过算术逻辑生成css比例

    相关标签:

    css

    本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

    上一篇:Lesson02_05 头元素_基础教程 下一篇:Lesson02_04 表单标签(2)_基础教程

    热门AI工具

    更多
    DeepSeek
    DeepSeek

    幻方量化公司旗下的开源大模型平台

    豆包大模型
    豆包大模型

    字节跳动自主研发的一系列大型语言模型

    通义千问
    通义千问

    阿里巴巴推出的全能AI助手

    腾讯元宝
    腾讯元宝

    腾讯混元平台推出的AI助手

    文心一言
    文心一言

    文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

    讯飞写作
    讯飞写作

    基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

    即梦AI
    即梦AI

    一站式AI创作平台,免费AI图片和视频生成。

    ChatGPT
    ChatGPT

    最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

    相关专题

    更多
    C# ASP.NET Core微服务架构与API网关实践
    C# ASP.NET Core微服务架构与API网关实践

    本专题围绕 C# 在现代后端架构中的微服务实践展开,系统讲解基于 ASP.NET Core 构建可扩展服务体系的核心方法。内容涵盖服务拆分策略、RESTful API 设计、服务间通信、API 网关统一入口管理以及服务治理机制。通过真实项目案例,帮助开发者掌握构建高可用微服务系统的关键技术,提高系统的可扩展性与维护效率。

    16

    2026.03.11

    Go高并发任务调度与Goroutine池化实践
    Go高并发任务调度与Goroutine池化实践

    本专题围绕 Go 语言在高并发任务处理场景中的实践展开,系统讲解 Goroutine 调度模型、Channel 通信机制以及并发控制策略。内容包括任务队列设计、Goroutine 池化管理、资源限制控制以及并发任务的性能优化方法。通过实际案例演示,帮助开发者构建稳定高效的 Go 并发任务处理系统,提高系统在高负载环境下的处理能力与稳定性。

    23

    2026.03.10

    Kotlin Android模块化架构与组件化开发实践
    Kotlin Android模块化架构与组件化开发实践

    本专题围绕 Kotlin 在 Android 应用开发中的架构实践展开,重点讲解模块化设计与组件化开发的实现思路。内容包括项目模块拆分策略、公共组件封装、依赖管理优化、路由通信机制以及大型项目的工程化管理方法。通过真实项目案例分析,帮助开发者构建结构清晰、易扩展且维护成本低的 Android 应用架构体系,提升团队协作效率与项目迭代速度。

    75

    2026.03.09

    JavaScript浏览器渲染机制与前端性能优化实践
    JavaScript浏览器渲染机制与前端性能优化实践

    本专题围绕 JavaScript 在浏览器中的执行与渲染机制展开,系统讲解 DOM 构建、CSSOM 解析、重排与重绘原理,以及关键渲染路径优化方法。内容涵盖事件循环机制、异步任务调度、资源加载优化、代码拆分与懒加载等性能优化策略。通过真实前端项目案例,帮助开发者理解浏览器底层工作原理,并掌握提升网页加载速度与交互体验的实用技巧。

    95

    2026.03.06

    Rust内存安全机制与所有权模型深度实践
    Rust内存安全机制与所有权模型深度实践

    本专题围绕 Rust 语言核心特性展开,深入讲解所有权机制、借用规则、生命周期管理以及智能指针等关键概念。通过系统级开发案例,分析内存安全保障原理与零成本抽象优势,并结合并发场景讲解 Send 与 Sync 特性实现机制。帮助开发者真正理解 Rust 的设计哲学,掌握在高性能与安全性并重场景中的工程实践能力。

    218

    2026.03.05

    PHP高性能API设计与Laravel服务架构实践
    PHP高性能API设计与Laravel服务架构实践

    本专题围绕 PHP 在现代 Web 后端开发中的高性能实践展开,重点讲解基于 Laravel 框架构建可扩展 API 服务的核心方法。内容涵盖路由与中间件机制、服务容器与依赖注入、接口版本管理、缓存策略设计以及队列异步处理方案。同时结合高并发场景,深入分析性能瓶颈定位与优化思路,帮助开发者构建稳定、高效、易维护的 PHP 后端服务体系。

    420

    2026.03.04

    AI安装教程大全
    AI安装教程大全

    2026最全AI工具安装教程专题:包含各版本AI绘图、AI视频、智能办公软件的本地化部署手册。全篇零基础友好,附带最新模型下载地址、一键安装脚本及常见报错修复方案。每日更新,收藏这一篇就够了,让AI安装不再报错!

    168

    2026.03.04

    Swift iOS架构设计与MVVM模式实战
    Swift iOS架构设计与MVVM模式实战

    本专题聚焦 Swift 在 iOS 应用架构设计中的实践,系统讲解 MVVM 模式的核心思想、数据绑定机制、模块拆分策略以及组件化开发方法。内容涵盖网络层封装、状态管理、依赖注入与性能优化技巧。通过完整项目案例,帮助开发者构建结构清晰、可维护性强的 iOS 应用架构体系。

    222

    2026.03.03

    C++高性能网络编程与Reactor模型实践
    C++高性能网络编程与Reactor模型实践

    本专题围绕 C++ 在高性能网络服务开发中的应用展开,深入讲解 Socket 编程、多路复用机制、Reactor 模型设计原理以及线程池协作策略。内容涵盖 epoll 实现机制、内存管理优化、连接管理策略与高并发场景下的性能调优方法。通过构建高并发网络服务器实战案例,帮助开发者掌握 C++ 在底层系统与网络通信领域的核心技术。

    33

    2026.03.03

    热门下载

    更多
    网站特效
    /
    网站源码
    /
    网站素材
    /
    前端模板

    相关下载

    更多

    精品课程

    更多
    相关推荐
    /
    热门推荐
    /
    最新课程

    最新文章

    更多
    关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
    php中文网:公益在线php培训,帮助PHP学习者快速成长!
    关注服务号 技术交流群
    PHP中文网订阅号
    每天精选资源文章推送

    Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号