JS style.display和style.visibility区别

发布时间:2020-08-11编辑:脚本学堂
本文介绍了JS style.display和style.visibility在用法上的区别,有需要的朋友参考下。

在JS脚本中可以通过设置style.display或者style.visibility属性来控制元素是否显示,在style.display=block和style.visibility=visible的时候,元素被显示,在style.display=none和style.visibility=hidden的时候,元素被隐藏。

二者的区别是通过style.display=none隐藏时,元素不占据原来的位置,从文档流中脱离,后续的元素填补其位置。
通过style.visibility=hidden隐藏时,元素仍然占据原来的位置,只是被隐藏。

举例说明:
divContent1和divContent2隐藏时,使用style.display=none,此时后面的div会向上移动,占据已经隐藏的div的空间。
divContent3和divContent4用的是style.visibility=hidden来隐藏,但是其隐藏后仍然占据原来的空间。

例子,
 

复制代码 代码示例:
<html> 
<head> 
<title>JS style.display和style.visibility区别——测试例子_www.jb200.com</title> 
<meta http-equiv=content-type content="text/html; charset=gb2312"> 
<style> 
.titlediv{background-color:#eee;color:white;font-weight:bold;padding:10px;cursor:pointer } 
.contentdiv{border:3px solid blue;height:100px;padding:10px; } 
</style> 
<script type="text/javascript">   
function toggle(divid){ 
    var odiv = document.getElementById(divid); 
    odiv.style.display=(odiv.style.display=="none")?"block":"none"; 

 
function showhide(divid){ 
    var odiv = document.getElementById(divid); 
    odiv.style.visibility=(odiv.style.visibility=="visible")?"hidden":"visible"; 

</script>     
</head>   
<body >   
    <div class="titlediv" onclick="toggle('divContetn1')">click here</div>  
    <div class="contentdiv" id="divContetn1">this is some content to show and hide 
    </div> 
    <p> </p> 
    <div class="titlediv" onclick="toggle('divContetn2')">click here</div>  
    <div class="contentdiv" id="divContetn2">this is some content to show and hide 
    </div>  
    <p> </p> 
    <div class="titlediv" onclick="showhide('divContetn3')">click here</div>  
    <div class="contentdiv" id="divContetn3">this is some content to show and hide 
    </div> 
    <p> </p> 
    <div class="titlediv" onclick="showhide('divContetn4')">click here</div>  
    <div class="contentdiv" id="divContetn4">this is some content to show and hide 
    </div>         
</body>   
</html>