HTML元素显示与隐藏


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

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

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

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



Example:

  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>  
<html>
<head>
<title>HTML元素的显示与隐藏控制</title>
<style type="text/css">
#div1,#div3{
	width:50px;
	height:50px;
	background:cyan;
}

#div2,#div4{
	width:50px;
	height:80px;
	background:gray;
}
</style>
<script type="text/javascript">
function showAndHidden1(){
  var div1=document.getElementById("div1");
  var div2=document.getElementById("div2");
  if(div1.style.display=='block') div1.style.display='none';
  else div1.style.display='block';
  if(div2.style.display=='block') div2.style.display='none';
  else div2.style.display='block';
}

function showAndHidden2(){
  var div3=document.getElementById("div3");
  var div4=document.getElementById("div4");
  if(div3.style.visibility=='visible') div3.style.visibility='hidden';
  else div3.style.visibility='visible';
  if(div4.style.visibility=='visible') div4.style.visibility='hidden';
  else div4.style.visibility='visible';
}
</script>
</head>
<body>
<div>display:元素的位置不被占用</div>
<div id="div1" style="display:block;">DIV 1</div>
<div id="div2" style="display:none;">DIV 2</div>
<input type="button" οnclick="showAndHidden1();" value="display切换DIV" />
<hr>
<div>visibility:元素的位置仍被占用</div>
<div id="div3" style="visibility:visible;">DIV 3</div>
<div id="div4" style="visibility:hidden;">DIV 4</div>
<input type="button" οnclick="showAndHidden2();" value="visibility属性切换DIV "/>
</body>
</html>

Result:


小结:

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



用关于display和visibility曾遇到过:

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值