Jquery 为什么内联块不是;可见的;?

Jquery 为什么内联块不是;可见的;?,jquery,Jquery,内联块似乎使元素与“:visible”选择器不匹配 $('body').append($('<p>').css('display', 'inline-block')) var p = $('p'); p.is(':visible'); ==> false p.css('display', 'block'); p.is(':visible'); ==> true $('body').append($('p>').css('display','inline block')

内联块似乎使元素与“:visible”选择器不匹配

$('body').append($('<p>').css('display', 'inline-block'))
var p = $('p');
p.is(':visible');
==> false

p.css('display', 'block');
p.is(':visible');
==> true
$('body').append($('p>').css('display','inline block'))
var p=$('p');
p、 是(':visible');
==>错误
p、 css(“显示”、“块”);
p、 是(':visible');
==>正确
来自jQuery():

如果元素占用文档中的空间,则认为它们是可见的。可见元素的宽度或高度大于零

空内联块的高度和宽度为0(宽度基于包含的元素)

空块元素将具有父元素的宽度

有关如何确定内联和块级元素的宽度的更多信息,请访问


Edit:正如法布里西奥·马特所指出的,这假设元素都是空的,并附加到DOM中。分离,即使块元素没有父元素来计算布局,也将返回false。

在这两种情况下,您的代码都会为我返回
false
,因为您的元素已从DOM分离。@Mr.Alien OP正在创建一个新的
p
元素。对不起,是的,在我的示例代码中,我跳过了添加到dom的步骤——我对其进行了更新。当它们与文档分离时,没有一个会占用文档中的空间。你是对的。我将节点附加到文档以进行验证。应该注意的是,这假设元素附加到DOM,这在问题中并不清楚。