HTML元素显示与隐藏

来源:互联网 发布:租车软件排行 编辑:程序博客网 时间:2024/04/29 15:11

在WEB开发中,前台HTML中经常需要控制元素的隐藏与显示,我们最为最常见是二级导航栏(通过鼠标的移动来触发onmouseover,onmouseout事件来实现二级菜单的显示与隐藏)二级菜单的显示与隐藏。

然而控制元素的影响与显示有两种方式:

1、display : 设置如何及是否显示某元素

2、visibility : 设置元素可见或不可见



Example:

[html] view plaincopyprint?在CODE上查看代码片派生到我的代码片
  1. <html>  
  2. <head>  
  3. <title>HTML元素的显示与隐藏控制</title>  
  4. <style type="text/css">  
  5. #div1,#div3{  
  6.     width:50px;  
  7.     height:50px;  
  8.     background:cyan;  
  9. }  
  10.   
  11. #div2,#div4{  
  12.     width:50px;  
  13.     height:80px;  
  14.     background:gray;  
  15. }  
  16. </style>  
  17. <script type="text/javascript">  
  18. function showAndHidden1(){  
  19.   var div1=document.getElementById("div1");  
  20.   var div2=document.getElementById("div2");  
  21.   if(div1.style.display=='block') div1.style.display='none';  
  22.   else div1.style.display='block';  
  23.   if(div2.style.display=='block') div2.style.display='none';  
  24.   else div2.style.display='block';  
  25. }  
  26.   
  27. function showAndHidden2(){  
  28.   var div3=document.getElementById("div3");  
  29.   var div4=document.getElementById("div4");  
  30.   if(div3.style.visibility=='visible') div3.style.visibility='hidden';  
  31.   else div3.style.visibility='visible';  
  32.   if(div4.style.visibility=='visible') div4.style.visibility='hidden';  
  33.   else div4.style.visibility='visible';  
  34. }  
  35. </script>  
  36. </head>  
  37. <body>  
  38. <div>display:元素的位置不被占用</div>  
  39. <div id="div1" style="display:block;">DIV 1</div>  
  40. <div id="div2" style="display:none;">DIV 2</div>  
  41. <input type="button" onclick="showAndHidden1();" value="display切换DIV" />  
  42. <hr>  
  43. <div>visibility:元素的位置仍被占用</div>  
  44. <div id="div3" style="visibility:visible;">DIV 3</div>  
  45. <div id="div4" style="visibility:hidden;">DIV 4</div>  
  46. <input type="button" onclick="showAndHidden2();" value="visibility属性切换DIV "/>  
  47. </body>  
  48. </html>  

Result:


小结:

        display 和visibility同时可以实现对元素的隐藏和显示,区别在于visibility属性做到的是将html元素隐藏,但其元素(即使是隐藏状态)的所在的位置独占,而display属性操作html元素则不会想这样,display属性操作的是元素的类型inline,block,none这些属性直接关系到元素的大小及存在与否。



用关于display和visibility曾遇到过:

        写二级导航栏菜单,当时用display来实现二级菜单的显示与隐藏时,结果发现在第一次访问或者刷新后第一次访问,鼠标移动到一级菜单时二级子菜单感觉就想刷新不出来一样,用visibility实现则不会出现像这样的问题。

0 0
原创粉丝点击