2011-11-12 6 views
1

요소가 인 경우 표시 : 없음.
여백 - 위/아래 : 20 픽셀
패딩 - 위/아래 : 20 픽셀
높이 :jquery - 디스플레이가있는 요소의 높이를 측정하는 방법 : 없음?

-22px를 요소가 설정되어있는 경우

방화범은 요소가 나에게 말한다 ~ 표시 : 블록 높이가 다음과 같이 변경되었습니다.

높이 : 73px

Jquery를 통해 -22px를 검색해야하지만 디스플레이가 설정되어 있어도 항상 73px가 표시됩니다. -22 픽셀을 얻을 수있는 방법이 있습니까?

감사합니다.

+0

높이를 표시하는 방화범입니다. – jQuerybeast

+0

아직 내 위치가 22px 떨어져 있습니다. 마이너스는 신경 쓰지 마라. 22px로 하여금 전반적인 위치를 조정해야한다. – frequent

답변

2

jQuery를 사용하지 마십시오. 요소가있는 경우 (어쩌면 getElementById()) offsetHeight을 가져옵니다. 그건 0px이어야합니다 - 부정적인 높이와 같은 것은 없습니다, 나는 Firebug가 offsetHeight을 취하고 margin/border/padding을 빼는 것 같다고 생각합니다 ...

jQuery는 실제 높이를 원한다고 거의 확신합니다. 보이기 때문에 "눈에 잘 보이게하고, 높이를 얻고, 다시 보이지 않게"하는 등의 일을합니다.

+0

이상한 점은 내가 위치를 잡으려고하는 요소가 -22px만큼 정확하다는 것입니다. 그래서 _display : none_ 및 _height : -22px_를 가진이 div 때문일 수 있습니다. – frequent

+0

offsetHeight이 (가) 내 하루를 보냈습니다. 감사! – frequent

+0

참고로 jQuery 외 반대입니다. 자신 만의 코드를 작성할 때 원하는 작업을 정확하게 수행 할 수 있습니다. –

0

나는 주변을 둘러 보았고, IMHO, 문제는 실제 div 안에있다. 추가 조사를 해봐.

<div id='testDiv' style='padding:20px; margin:20px; display:none; border:1px solid red; ' ></div> 

alert($('#testDiv').height());   // 0 
alert($('#testDiv').innerHeight());  //40 
alert($('#testDiv').outerHeight());  //42 <======= 

$('#testDiv').css('display','block'); 

alert($('#testDiv').height());   // 0 
alert($('#testDiv').innerHeight());  //40 
alert($('#testDiv').outerHeight());  //42 <======== 
+0

ok. 다시 이것을 들여다 보았다. 고마워 – frequent

관련 문제