2011-03-16 5 views
0

문제가 있습니다. 아래의 코드를 참조하십시오.직위 : Absolute and Position : relative 예 :

<div style="position:relative; overflow:hidden; width:120px;"> 
    <div style="position:absolute; left:0px;">Content</div> 
    <div style="position:absolute; left:40px;">Content</div> 
    <div style="position:absolute; left:80px;">Content</div> 
</div> 

문제는 파이어 폭스에서 작동합니다. 하지만 ie-8에서이 코드를 실행하면 문제가 발생합니다. 게재 순위가있는 모든 div : 40px wide입니다. 그들은 단지 내가 그들에게 할당하는 직위를 달성해야한다. 즉, 두 번째 div는 position:absolute이며 두 번 왼쪽 공백을 사용합니다. 첫 번째 div의 수를 40px으로 계산 한 다음 40px을 더 계산합니다. 상대적으로 위치한 div의 왼쪽에서 40px을 가져 가야합니다. 누군가 제발 도와 줄 수 있니?

+0

이 div에 대한 CSS가 모두 있습니까? 플로트가 있다면 : 왼쪽; 어린이 div에서 설명하는 문제가 발생할 수 있습니다. –

답변

0

ie7 & ie8에서 예상대로 작동합니다. 오버 플로우를 버리십시오. 숨겨진 이유는 모든 것을 숨겨주기 때문입니다. 여기를 보시고 테두리가 어떻게 보이는지보십시오 : http://jsfiddle.net/uWkJ7/1/ 모든 div가 콘텐츠 폭으로 확장됩니다.

+0

[link] http://dev1.mybex.com/bhdarchitects/projects.php?subcat=4&prodid=1&imgid=8 [/ link] . 갤러리의 두 이미지를 관찰하십시오. 파이어 폭스에서 왼쪽 화살표 뒤의 첫 번째 숨김, 즉 잘 보여줍니다. 왼쪽에서 40px를 주면 firefox show corrent 결과가 나오지만 즉 40px 앞으로 밀어 내고 문제가 발생합니다. – themajiks

+0

글쎄,이 문제는 직접 해결했다. 나는 css에서'left : 0;'을 주었고 ie에 적용된 해킹을 적용했다. 해킹은 'html>/**/body left : 40px;' – themajiks

+0

이 문제를 조사했습니다. 그것은 분명히 즉 버그입니다. –

0

"레이아웃 없음"요소에서 hasLayout이 트리거되지 않습니다. 즉, 차원이없는 순수 div는 "레이아웃이 아닌 조상"이 될 수 있습니다.