CSS: display:none和visibility:hidden的区别

来源:互联网 发布:阿里云属于paas 编辑:程序博客网 时间:2024/06/04 19:26

       今天要写一个js遮盖层的插件,在设置CSS的时候,使用了visibility:hidden的这个属性,发现,并没有达到一开始就隐藏,点击的时候唤醒的这个功能,于是就去网上查了下,发现应该用display:none ;于是去网上总结下区别:

display:none:

     1、如果在样式文件或页面文件代码中直接用display:none对元素进行了隐藏,载入页面后,在没有通过js设置样式使元素显示的前提下,使用js代码会无法正确获得该元素的一些属性,比如offSetTop,offSetLeft等,返回的值会为0,通过js设置style.display来使元素显示后才能正确获得这些值。

    2、使用display:none隐藏的元素不会被百度等搜索网站检索,会影响到网站的SEO,某些情况下可以使用left:-100000px来达到同样效果。

    3、如果是通过样式文件或<style>css</style>方式来设置元素的display:none样式,用js设置style.display=""并不能使元素显示,可以使用block或inline等值来代替。通过style="display:none"直接在元素上进行的设置不会有这个问题

    4、有些情况下可以使用style.visibility来代替style.display,但是要注意的是style.visibility隐藏元素时会保留元素在页面上所占的空间,而style.display隐藏元素且让出所占页面空间。

visibility:hidden:

     如果想让某一段代码在前台不显示,最简单的方法是用css的display:none,这样,下边的内容就自动填补这个空隙。但是在一些特殊的情况下,我们只需要隐藏这个元素,但它的位置不能被占用了,那么,visibility:hidden就可以实现这个要求。

   就是说,用,用 visibility:hidden;可以很方便实现隐藏元素在前台的显示,但它的位置不会被后边的元素抢占。


0 0
原创粉丝点击