Heim  >  Artikel  >  Web-Frontend  >  编写纯 CSS 弹出菜单的原理及实现 By shawl.qiu_经验交流

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

WBOY
WBOYOriginal
2016-05-16 12:08:465156Durchsuche

编写纯 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. nbsp;HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
  2. http://www.w3.org/TR/html4/loose.dtd">
  3. Untitled Document
  4.     
  5.         
    level
  6.         
  7.             
    level_ title
  8.             level_ title 1
  9.             level_ title 2
  10.             level_ title 3
  11.             level_ title 4
  12.             level_ title 5
  13.         
  •     
  •     
  •         
    level 1
  •         
  •             
    level_ title
  •             level_ title 1
  •             level_ title 2
  •             level_ title 3
  •             level_ title 4
  •             level_ title 5
  •         
  •     
  •     
  •         
    level 2
  •         
  •             
    level_ title
  •             level_ title 1
  •             level_ title 2
  •             level_ title 3
  •             level_ title 4
  •             level_ title 5
  •         
  •     
  •     
  •         
    level 3
  •         
  •             
    level_ title
  •             level_ title 1
  •             level_ title 2
  •             level_ title 3
  •             level_ title 4
  •             level_ title 5
  •         
  •     
  •     
  •         
    level 4
  •         
  •             
    level_ title
  •             level_ title 1
  •             level_ title 2
  •             level_ title 3
  •             level_ title 4
  •             level_ title 5
  •         
  •     

  • 1.2 兼容 IE, Opera, Firefox 的 CSS 弹出菜单(脚本实现)
      linenum
    1. nbsp;HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    2. http://www.w3.org/TR/html4/loose.dtd">
    3. Untitled Document
    4. <script> <LI>//<![CDATA[ <LI>if (navigator.appName=="Microsoft Internet Explorer") { <LI> function fPmVerticalRightOut() { <LI> var getItem = document.getElementById("pmVerticalRightOut").getElementsByTagName("div"); <LI> for (var i=0; i<getItem.length; i++) { <LI> getItem[i].onmouseover=function() { <LI> if( this.className=="level"){ <LI> this.className="levelIe"; <LI> } <LI> } <LI> getItem[i].onmouseout=function() { <LI> if( this.className=="levelIe"){ <LI> this.className="level"; <LI> } <LI> }//css popup menu script by shawl.qiu <LI> } <LI> } <LI> window.onload=fPmVerticalRightOut; <LI>} <LI>//]]> <LI></script>
    5.     
    6.         
      level
    7.         
    8.             
      level_ title
    9.             level_ title 1
    10.             level_ title 2
    11.             level_ title 3
    12.             level_ title 4
    13.             level_ title 5
    14.         
    15.     
    16.     
    17.         
      level 1
    18.         
    19.             
      level_ title
    20.             level_ title 1
    21.             level_ title 2
    22.             level_ title 3
    23.             level_ title 4
    24.             level_ title 5
    25.         
    26.     
    27.     
    28.         
      level 2
    29.         
    30.             
      level_ title
    31.             level_ title 1
    32.             level_ title 2
    33.             level_ title 3
    34.             level_ title 4
    35.             level_ title 5
    36.         
    37.     
    38.     
    39.         
      level 3
    40.         
    41.             
      level_ title
    42.             level_ title 1
    43.             level_ title 2
    44.             level_ title 3
    45.             level_ title 4
    46.             level_ title 5
    47.         
    48.     
    49.     
    50.         
      level 4
    51.         
    52.             
      level_ title
    53.             level_ title 1
    54.             level_ title 2
    55.             level_ title 3
    56.             level_ title 4
    57.             level_ title 5
    58.         
    59.     

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

    2.1 真正的基于 Opera, Firefox 纯 CSS 弹出菜单
      linenum
    1. nbsp;HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    2. http://www.w3.org/TR/html4/loose.dtd">
    3. Untitled Document
    4.     
    5.         
      level
    6.         
    7.             
      level_ title
    8.             level_ title 1
    9.             level_ title 2
    10.             level_ title 3
    11.             level_ title 4
    12.             level_ title 5
    13.         
    14.     
    15.     
    16.         
      level 1
    17.         
    18.             
      level_ title
    19.             level_ title 1
    20.             level_ title 2
    21.             level_ title 3
    22.             level_ title 4
    23.             level_ title 5
    24.         
    25.     
    26.     
    27.         
      level 2
    28.         
    29.             
      level_ title
    30.             level_ title 1
    31.             level_ title 2
    32.             level_ title 3
    33.             level_ title 4
    34.             level_ title 5
    35.         
    36.     
    37.     
    38.         
      level 3
    39.         
    40.             
      level_ title
    41.             level_ title 1
    42.             level_ title 2
    43.             level_ title 3
    44.             level_ title 4
    45.             level_ title 5
    46.         
    47.     
    48.     
    49.         
      level 4
    50.         
    51.             
      level_ title
    52.             level_ title 1
    53.             level_ title 2
    54.             level_ title 3
    55.             level_ title 4
    56.             level_ title 5
    57.         
    58.     

    2.2 兼容 IE, Opera, Firefox 的 CSS 弹出菜单(脚本实现)
      linenum
    1. nbsp;HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    2. " http://www.w3.org/TR/html4/loose.dtd">
    3. Untitled Document
    4. <script> <LI>//<![CDATA[ <LI>if (navigator.appName=="Microsoft Internet Explorer") { <LI> function fPmHorizontalBottomOut() { <LI> var getItem = document.getElementById("pmHorizontalBottomOut").getElementsByTagName("div"); <LI> for (var i=0; i<getItem.length; i++) { <LI> getItem[i].onmouseover=function() { <LI> if( this.className=="level"){ <LI> this.className="levelIe"; <LI> } <LI> } <LI> getItem[i].onmouseout=function() { <LI> if( this.className=="levelIe"){ <LI> this.className="level"; <LI> } <LI> }//css popup menu script by shawl.qiu <LI> } <LI> } <LI> window.onload=fPmHorizontalBottomOut; <LI>} <LI>//]]> <LI></script>
    5.     
    6.         
      level
    7.         
    8.             
      level_ title
    9.             level_ title 1
    10.             level_ title 2
    11.             level_ title 3
    12.             level_ title 4
    13.             level_ title 5
    14.         
    15.     
    16.     
    17.         
      level 1
    18.         
    19.             
      level_ title
    20.             level_ title 1
    21.             level_ title 2
    22.             level_ title 3
    23.             level_ title 4
    24.             level_ title 5
    25.         
    26.     
    27.     
    28.         
      level 2
    29.         
    30.             
      level_ title
    31.             level_ title 1
    32.             level_ title 2
    33.             level_ title 3
    34.             level_ title 4
    35.             level_ title 5
    36.         
    37.     
    38.     
    39.         
      level 3
    40.         
    41.             
      level_ title
    42.             level_ title 1
    43.             level_ title 2
    44.             level_ title 3
    45.             level_ title 4
    46.             level_ title 5
    47.         
    48.     
    49.     
    50.         
      level 4
    51.         
    52.             
      level_ title
    53.             level_ title 1
    54.             level_ title 2
    55.             level_ title 3
    56.             level_ title 4
    57.             level_ title 5
    58.         
    59.     


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

    4. 预览

    4.1 1.2 兼容 IE, Opera, Firefox 的 CSS 弹出菜单(脚本实现) 的预览
    Stellungnahme:
    Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
    Vorheriger Artikel:Lesson02_05 Header Element_Basic TutorialNächster Artikel:Lesson02_05 Header Element_Basic Tutorial

    In Verbindung stehende Artikel

    Mehr sehen