为什么我可以在jQuery中使用.hide()而不是.show()?

时间:2012-03-24 04:24:26

标签: jquery html css

HTML:

<div id="box">my box</div>​

为什么我可以隐藏这样一个可见的div:http://jsfiddle.net/FfaVW/2/

CSS:

#box {
    visibility:visible;
}​

JS:

jQuery('#box').hide();​

但是我无法显示这样一个隐藏的div:http://jsfiddle.net/FfaVW/1/

CSS:

#box {
    visibility:hidden;
}​

JS:

jQuery('#box').show();​

3 个答案:

答案 0 :(得分:3)

show()改变了 display CSS属性,而不是 visibility

http://api.jquery.com/show/

它将显示一个display:none例如。

http://api.jquery.com/visible-selector/

提供有关jQuery为何如此行为的见解:

  

具有可见性的元素:隐藏或不透明度:0被认为是可见的,因为它们仍占用布局中的空间。

答案 1 :(得分:0)

jQuery show()hide()改变display

display修改屏幕上元素的流程。

可见性只是处理这样一个事实,即你是否可以在屏幕上看到它,但它会占用空间。

检查区别:http://jsfiddle.net/XS4ca/3/

答案 2 :(得分:0)

不要将visibility CSS用于ShowHide Div

相反使用Div隐藏使用Css您使用Display:none和使用显示使用Displan:Block

显示以下链接例如:

http://jsfiddle.net/FfaVW/7/

http://jsfiddle.net/FfaVW/8/

希望这对你有所帮助。