隐藏和可见性对应于show()或css(" visibility"," visible")?

时间:2016-10-20 15:59:18

标签: jquery

在div中,我有<div id="test" style="visibility:hidden">,我使用$('#test').show(),但它没有显示我的div。但是如果我使用$('#test').css('visibility','visible')div就会显示出来。

$('#test').hide()也会隐藏我的div$('#test').show()会显示div,我想知道为什么两者都可以hide div,但不能使用crossly ?

3 个答案:

答案 0 :(得分:0)

可见性:隐藏隐藏目标内容,但它仍然保留在DOM中:它下面的另一个元素不会出现在它的位置。

hide()也会影响DOM:元素的位置可用于在其位置显示的其他内容。

请参阅此答案,例如:https://stackoverflow.com/a/133064/4834168

答案 1 :(得分:0)

jQuery hide大致相当于调用.css( "display", "none" )show会相应地发挥作用。

答案 2 :(得分:0)

通常visibility:hidden会隐藏它,但会留下空间或者仍然在那里分配空间但不显示。

这就是为什么

$('#test').show()无法正常工作,因为show()适用于使用jQuery 方法隐藏的元素和使用CSS 中的 display:none。不是visibility:hidden而是$('#test').hide()

另一方面

display:none表示相关标签根本不会显示在页面中,但您仍然可以通过文档对象模型/ DOM访问/使用它。在其他标签之间没有为其分配空间。所以在这里您可以使用我提到的$('#test').show();可以与之互动

最后简而言之:如果设置display:none,它会隐藏整个元素,而visibility:hidden意味着元素的内容将不可见,但元素保留在原始元素中位置和大小&amp;仍会影响布局。

希望它有所帮助。