为什么内联块不“可见”?

时间:2014-05-20 17:59:30

标签: jquery

内联块似乎使元素与":visible"不匹配选择?

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

p.css('display', 'block');
p.is(':visible');
==> true

1 个答案:

答案 0 :(得分:2)

来自jQuery(http://api.jquery.com/visible-selector/):

  

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

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

enter image description here

空块元素的宽度为

http://i.snag.gy/cLLei.jpg

可以在w3.org找到有关内联和块级元素的宽度确定方式的更多信息。

编辑:正如FabrícioMatté所指出的,这假设元素都是空的并附加到DOM。分离,甚至块元素都没有父计算布局,并将返回false。