visibility和display的区别

visibility和display两个属性都有隐藏元素的功能,

display:none和visibility:hidden的区别:

小结:visibility:hidden隐藏,但在浏览时保留位置;而display:none视为不存在,且不加载!

1、visibility:hidden--为隐藏的对象保留其物理空间
HTML元素(对象)仅仅是在视觉上看不见(完全透明),而它所占据的空间位置仍然存在。
 
2、display: none--不为被隐藏的对象保留其物理空间
HTML元素(对象)的宽度、高度等各种属性值都将“丢失”
 

visibility属性是隐藏元素但保持元素的浮动位置,而display实际上是设置元素的浮动特征。

visibility属性用来确定元素是显示还是隐藏,这用visibility="visible|hidden"来表示,visible表示显示,hidden表示(仅)隐藏,不可恢复。当visibility被设置为"hidden"的时候,元素虽然被隐藏了:

1、仍然占据它原来所在的位置。visibility会保留元素的位置.

2、元素被隐藏之后,就不能再接收到其它事件了,当其被设为"hidden"的时候,就不能再接收响应到事件了,因此也就无法通过JS令其显示出来。

display属性就有一点不同了。none隐藏(元素消失),可恢复。inline,block显示

1、display被设置为block(块)时,容器中所有的元素将会被当作一个单独的块,就像<div>元素一样,它会在那个点被放入到页面中。(实际上你可以设置<span>的display:block,使其可以像<div>一样工作。

2、display设置为inline,将使其行为和元素inline一样---即使它是普通的块元素如<div>,它也将会被组合成像<span>那样的输出流。最后是display被设置:none,这时元素实际上就从页面中被移走,它下面所在的元素就会被自动跟上填充。

原文地址:https://www.cnblogs.com/meggie523/p/5150625.html