视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
编写纯CSS弹出菜单的原理及实现Byshawl.qiu_经验交流
2020-11-27 18:54:50 责编:小采
文档


编写纯 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. " http://www.w3.org/TR/html4/loose.dtd">
  2. Untitled Document
  3. level
  4. level_ title
  5. level_ title 1
  6. level_ title 2
  7. level_ title 3
  8. level_ title 4
  9. level_ title 5
  10. level 1
  11. level_ title
  12. level_ title 1
  13. level_ title 2
  14. level_ title 3
  15. level_ title 4
  16. level_ title 5
  17. level 2
  18. level_ title
  19. level_ title 1
  20. level_ title 2
  21. level_ title 3
  22. level_ title 4
  23. level_ title 5
  24. level 3
  25. level_ title
  26. level_ title 1
  27. level_ title 2
  28. level_ title 3
  29. level_ title 4
  30. level_ title 5
  31. level 4
  32. level_ title
  33. level_ title 1
  34. level_ title 2
  35. level_ title 3
  36. level_ title 4
  37. level_ title 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 popup menu script by shawl.qiu
  16. }
  17. }
  18. window.onload=fPmVerticalRightOut;
  19. }
  20. //]]>
  21. level
  22. level_ title
  23. level_ title 1
  24. level_ title 2
  25. level_ title 3
  26. level_ title 4
  27. level_ title 5
  28. level 1
  29. level_ title
  30. level_ title 1
  31. level_ title 2
  32. level_ title 3
  33. level_ title 4
  34. level_ title 5
  35. level 2
  36. level_ title
  37. level_ title 1
  38. level_ title 2
  39. level_ title 3
  40. level_ title 4
  41. level_ title 5
  42. level 3
  43. level_ title
  44. level_ title 1
  45. level_ title 2
  46. level_ title 3
  47. level_ title 4
  48. level_ title 5
  49. level 4
  50. level_ title
  51. level_ title 1
  52. level_ title 2
  53. level_ title 3
  54. level_ title 4
  55. level_ title 5

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

2.1 真正的基于 Opera, Firefox 纯 CSS 弹出菜单

    linenum
  1. " http://www.w3.org/TR/html4/loose.dtd">
  2. Untitled Document
  3. level
  4. level_ title
  5. level_ title 1
  6. level_ title 2
  7. level_ title 3
  8. level_ title 4
  9. level_ title 5
  10. level 1
  11. level_ title
  12. level_ title 1
  13. level_ title 2
  14. level_ title 3
  15. level_ title 4
  16. level_ title 5
  17. level 2
  18. level_ title
  19. level_ title 1
  20. level_ title 2
  21. level_ title 3
  22. level_ title 4
  23. level_ title 5
  24. level 3
  25. level_ title
  26. level_ title 1
  27. level_ title 2
  28. level_ title 3
  29. level_ title 4
  30. level_ title 5
  31. level 4
  32. level_ title
  33. level_ title 1
  34. level_ title 2
  35. level_ title 3
  36. level_ title 4
  37. level_ title 5

2.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 fPmHorizontalBottomOut() {
  5. var getItem = document.getElementById("pmHorizontalBottomOut").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 popup menu script by shawl.qiu
  16. }
  17. }
  18. window.onload=fPmHorizontalBottomOut;
  19. }
  20. //]]>
  21. level
  22. level_ title
  23. level_ title 1
  24. level_ title 2
  25. level_ title 3
  26. level_ title 4
  27. level_ title 5
  28. level 1
  29. level_ title
  30. level_ title 1
  31. level_ title 2
  32. level_ title 3
  33. level_ title 4
  34. level_ title 5
  35. level 2
  36. level_ title
  37. level_ title 1
  38. level_ title 2
  39. level_ title 3
  40. level_ title 4
  41. level_ title 5
  42. level 3
  43. level_ title
  44. level_ title 1
  45. level_ title 2
  46. level_ title 3
  47. level_ title 4
  48. level_ title 5
  49. level 4
  50. level_ title
  51. level_ title 1
  52. level_ title 2
  53. level_ title 3
  54. level_ title 4
  55. level_ title 5

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

4. 预览

4.1 1.2 兼容 IE, Opera, Firefox 的 CSS 弹出菜单(脚本实现) 的预览
// level 下载本文

显示全文
专题