3

Firefox, SeaMonkey, Chrome, Opera, Safari, Camino 및 IE8에서 내 학교용으로 제작 한 작은 사이트를 테스트 한 결과 내 사이트의 절대적으로 위치한 div가 모두 일관성이 있다는 것을 알았습니다.IE6 및 7 앱솔루트 포지셔닝 버그

그러나 IE6과 7에서 사이트를 테스트하기 시작했을 때 모든 div가 제 위치에서 벗어나 페이지 전체에 지저분합니다.

저는 2 주 동안 인터넷 검색을하고 문제의 원인을 파악하려고했지만이 문제를 해결할 수있는 일관된 방법을 찾을 수 없습니다.

잘만되면 나는 미쳤어, 나의 영어가 매우 좋지 않은, 제 3의 언어 다.

더 많은 설명이 필요하면 언제든지 물어보십시오.

모든 도움을 주시면 감사하겠습니다.

감사합니다.

참고 : 위와 같이 수많은 솔루션과 유사한 질문이 있지만이 상황에서 작동하는 것을 찾을 수 없었습니다.

업데이트 : Zoom 속성이 내가 가지고있는 대부분의 문제를 해결했으며, hasLayout은 큰 고통으로 보입니다. Thanks Spudly and Patrik

+1

올바른 doctype을 설정 했습니까? IE가 없으면 IE는 많은 CSS를 무시합니다. – GrandmasterB

+0

나는 HTML5 Doctype을 사용했다. 대신 HTML4 Doctype을 사용해야합니까? –

+0

방금 ​​다양한 Doctypes로 놀았지만 문제는 여전히 지속됩니다. 다른 조언? –

답변

5

이것은 이전 버전의 IE를 지원해야하는 모든 웹 개발자의 삶에서 가장 고전적인 "HasLayout"버그와 같습니다.

HasLayout은 IE가 정상적으로 표시할지 또는 기묘한 글리치로 표시 할지를 결정하는 각 요소에 대해 보유하는 내부 플래그입니다. 사실 그것이 실제로 존재하는 것이 아니지만 그 효과가있는 것 같습니다.

문제를 해결하는 방법은 문제의 요소가 HasLayout 플래그를 얻도록 강제하는 것입니다. 안타깝게도 IE는이를 직접 수행하는 방법을 제공하지 않습니다. 당신은 그것을 촉발시키는 스타일을 적용해야한다.

일반적으로 스타일의 사람들이 신청을 선택하는

.myelelement { 
    zoom:1; 
} 

그 이유는 첫째입니다입니다, zoom는 IE 고유의 스타일 속성이며, 그래서 이것은 다른 브라우저에는 영향을주지 않으며, 둘째로 zoom:1;이 기본값이므로 실제로 요소에 대해 아무 것도 변경하지 않습니다. 그럼에도 불구하고 여전히 HasLayout 플래그를 얻기 위해 요소를 트리거하므로 문제를 해결해야합니다.

희망이 있습니다.

+0

고맙습니다. –

+0

6 년 동안 여전히 유용합니다. –

2

나는 당신의 문제를 일으킬 수있는 이전 IE의 일부 레이아웃 속성에 대해 몇 가지 버그를 들었습니다 ... 이미 그것에 대해 비슷한 주제가 있습니다 : link. 그것을 시도해라, 나는 절대 위치와 함께 문제가 있다고 생각하지 않는다, 그것은 부모 상대 위치 요소의 버그일지도 모른다.

+0

고맙습니다. 나는 두 답을 모두 받아들이는 것을 좋아했을 것이지만 Spudley 's는 곧바로 일했다. –