IE6 bug : Horizontal scroll bar in frame.
IE6에서 아이프레임(iframe) 또는 프레임셋(frameset) 문서에 의도하지 않은 수평 스크롤바를 발생시키는 버그 입니다. 아래 보시는 이미지는 좌우측 동일하게 표준 DTD를 사용한 문서를 프레임으로 출력할 때 IE6 브라우저의 프레임이 어떻게 스크롤바를 발생시키는지 보여주고 있습니다. 좌측은 내용이 넘치지 않지만 우측은 내용이 넘친다는 점만 다르고 프레임 scrolling 속성의 값은 기본값인 "auto" 입니다.

버그가 발생하는 상황.
- 프레임에 포함될 자식 문서에 표준 DTD(HTML 4.01 ST, XHTML 1.0 ST)를 사용. 부모 문서의 DTD는 관계 없음.
- 자식 문서의 내용이 프레임의 수직 크기를 초과할 때 수직 스크롤바 발생.
- 이 때 생기지 않아야 할 수평 스크롤바가 동시 발생.
잘못된 문제 해결 방법.
- 프레임의 scrolling 속성을 "no" 으로 바꿈 : 자식 문서의 내용이 넘칠 경우 보이지 않는 영역의 탐색이 불가능 해진다.
- 프레임에 포함될 자식 문서의 DTD를 제거 : Quirks Mode 렌더링을 유발하기 때문에 브라우저 호환성 작업이 어려워지게 된다.
적당한 문제 해결 방법.
- 프레임의 scrolling 속성을 "yes" 으로 바꾸면 IE6에서 더 이상 수평 스크롤바가 발생하지 않는다.
이 대안의 단점.
- IE를 비롯한 모든 브라우저들은 scrolling 속성이 "yes" 일때 자식 문서의 내용이 넘치지 않아도 ‘수직‘ 스크롤바 자리를 무조건 표시한다.
- Opera, Firefox 브라우저는 scrolling 속성이 "yes" 일때 자식 문서의 내용이 넘치지 않아도 ‘수직 및 수평‘ 스크롤바 자리를 무조건 표시한다.
- Safari, Chrome 브라우저는 scrolling 속성이 "yes" 일때 자식 문서의 내용이 넘치지 않아도 ‘수직‘ 스크롤바 자리를 무조건 표시한다.
테스트용 예제.
테스트 예제를 제대로 활용하려면 IE6 및 다양한 브라우저를 이용하여 이 문서를 보세요. 이 예제를 새 창에서 보기. 좌측에 있는 프레임은 내용이 넘치지 않는 프레임이고 우측에 있는 프레임은 내용이 넘치는 프레임 입니다.
No DTD & scrolling="auto"
Standard DTD & scrolling="auto"
Standard DTD & scrolling="yes"
예제를 한참 보면서 왜 가로 스크롤이 안보이지? 생각했는데 ie7이었습니다. [...]
크롬이라 가로 스크롤 안생겨요 -ㅁ-
와~ 정말 좋은 브라우저들을 사용하고 계시는군요. ㅎㅎㅎ.
그래서 프레임 셋을 사용해야 할 경우엔 이렇게 구분지어서 사용하는게 좋죠 ㅋㅋ
[!--[if IE]]
[frame src="http://" scrolling="yes" /]
[![endif]–]
[!--[if !IE]–]
[frame src="http://" /]
[![endif]]
[/frameset]
그나저나 이제 옷 입으시죠? ㅎㅎ;
역시 윤좌진! ㅎㅎㅎ
필터링에 의한 피해사례속출;;
와..좋은글 감사합니다.
[...] NARADESIGN:BLOG 의 포스트 제목을 그대로 채용한 [...]
따라쟁이님 트랙백 감사합니다. 상황에 따라서 유용할 수 있겠네요. ^^;