设置可见性与隐藏/显示

Bre*_*eak 21 javascript jquery

element.css('visibility', 'visible')和之间有什么区别element.show().另外,element.css('visibility', 'hidden')和之间有什么区别element.hide()

更新:此外,隐藏元素及其所有元素子树的最正确方法是什么?

更新N2:知道元素(及其子树)是否可见的正确方法是什么:element.is(':visible')element.css('visibility')

更新N3:有没有办法隐藏元素(完全),但它仍然会保留浏览器页面上的空格/区域?(据我所知 - 正确的方式是打电话,hide()但它可能导致页面视觉重组.

bar*_*iir 21

可见性仍将保留浏览器中的空间.

设置隐藏元素,display: none因此该元素占用的所有空间都会折叠.如果只将元素设置为元素,visibility: hidden那么它将变为透明,但空间被占用,就像元素仍然存在一样.

.hide()等于.css('display', 'none')
.show()就是等于.css('display', 'block')-我敢肯定的jQuery做一些神奇在这里决定,如果它真的block应该去那里,但它有点相同.

@Update:
一旦你用.hide()(或.css('display', 'none'))dom-tree下面的所有元素隐藏元素,那些元素的子元素也将被隐藏.

@Update 2:
如果您正在使用它.hide(),.show()那么.is(':visible') 如果您正在使用visibility css属性.css('visibility')

@Update 3:
这正是.css('visibility', 'hidden')它所做的,它隐藏了没有页面重组的元素..hide()将完全"删除"元素.