2014-05-20 3 views
0

인라인 블록이 요소를 ": visible"선택기와 일치하지 않는 것처럼 보입니까? jQuery를 (http://api.jquery.com/visible-selector/)에서인라인 블록이 보이지 않는 이유는 무엇입니까?

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

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

귀하의 코드는 두 경우 모두 나를 위해'false'를 반환합니다. 왜냐하면 요소가 DOM에서 분리 되었기 때문입니다. –

+0

@ Mr.Alien OP는 새로운'p' 요소를 만들고 있습니다. –

+0

죄송합니다. 예를 들어 샘플 코드에서 DOM 단계에 추가하는 것을 건너 뛰었습니다. 업데이트했습니다. – patrick

답변

2

는 : 그들은 문서의 공간을 사용하는 경우

요소는 볼 간주됩니다. 보이는 요소의 너비 또는 높이가 0보다 큽니다.

빈 인라인 블록은 빈 블록 요소는 부모 구성 요소의 폭을 가질 것이다

enter image description here

0의 높이와 폭 (폭이 포함 된 요소에 기초한다)을 가질 것이다

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

는 더 많은 정보는 폭과 인라인 블록 LEVE 결정 방법에 w3.org에서 찾을 수있다 l 요소.

편집 : Fabrício Matté가 지적했듯이, 이것은 요소가 비어 있고 DOM에 추가되었다고 가정합니다. 분리 되어도 block 요소조차도 레이아웃을 계산할 부모가 없으며 false를 반환합니다.

+0

문서에서 분리되어있는 동안 문서에서 공백을 차지하는 것은 없습니다. –

+0

네 말이 맞아. 노드를 문서에 추가하여 확인했습니다. – Jack

+0

당신이 맞다면, 피들을 시연 해 보시라 : http://jsfiddle.net/7HDJm/ –

관련 문제