display:none和visiblity:hidden区别

Posted 海角在眼前

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了display:none和visiblity:hidden区别相关的知识,希望对你有一定的参考价值。

相同:

1、两者都能隐藏元素。

不同:

1、display:none 不占页面空间,visiblity:hidden 占据原先页面空间。

这里必须说明的是,元素不占页面空间后,取该元素或其内部元素的宽高值永远是0。如果想隐藏又想取到宽高值,那就得用visiblity:hidden。

2、display:none 的子元素也一定无法显示,visiblity:hidden 的子元素可以设置显示。

display:none元素及其子元素都将隐藏,而visiblity:hidden元素的子元素却可以设置visibility: visible 显示出来。在这一点上,如果页面是比较复杂或者是不受控制的,就要慎重使用visiblity:hidden,因为保不齐哪个元素被设置成可见,影响显示效果。

3、display:none 引起页面重绘和回流, visiblity:hidden 只引起页面重绘。

visiblity:hidden 看起来的性能比display:none好些,在两者都能使用情况下,可先考虑visiblity:hidden。但也不用千方百计用visiblity:hidden,用哪个还是看需求,性能优化只是其中一部分,莫要本末倒置。

以上是关于display:none和visiblity:hidden区别的主要内容,如果未能解决你的问题,请参考以下文章

display:none和visiblity:hidden区别

display:none;visibility:hidden;和opacity:0;的区别

如何在 display:none 和 display:block 之间转换?

display:none和visibility:hidden的功能是啥?

display:none 和visibility:hidden的区别

jQuery获取display为none的隐藏元素的宽度和高度的解决方案