제주에서 작은 IT 사업을 하고 있는 유지 아빠가 보고 듣고 느끼는 진솔한 이야기를 나누는 공간입니다.

웹 & IT/웹표준/CSS

IE8에서 사이트 제작시 문제가 있다면...

유지아빠 2009. 4. 8. 14:05

흠.. 요즘 오픈 예정중인 사이트가 하나 있는데, 이게 IE8에서만 약간의 문제가 발생하는 부분이 있었다.
물론 IE8 에서만 발생하는 문제였다.
무지 무지 고민을 하던 중 마이크로소프트 정기 메일에서 온 정보를 보고 문제를 해결했다.

즉 호환성 문제가 발생하게 되면 아래와 같이 처리하면 된다고 한다.

"
Internet Explorer 8 웹표준 모드와 호환성 확보를 위한 웹사이트 메타태그 적용 가이드
  • 전체의 상호 운용성을 높이기 위한 노력의 하나로Internet Explorer 8 표준을 철저히 준수하는 표준 렌더링 모드를 기본설정으로 사용할 것입니다. 이에 따라 개발자들과 설계자들은 “Write once, run anywhere: 한번 작성하면 어디에서나 실행이 가능하다라는 표준의 상호 운용성 개념을 실현하고, 다양한 브라우저에 맞게 콘텐츠를 수정하는 작업보다는 혁신적인 업무에 주력할 있도록 지원하게 것입니다. 하지만 Internet Explorer 기본설정을 웹표준 렌더링모드로 설정할 경우 이전 버전의 Internet Explorer 용으로 작성된 대부분의 웹사이트들은 원하는 대로 콘텐츠가 표시되지 않고 다음과 같은 문제들이 발생할 있습니다.

    잘못 정렬된 페이지 레이아웃

    겹치는 텍스트 또는 이미지

    JavaScript 기능 문제 오류

    이러한 문제가 발생할 경우, 웹사이트 관리자는 자신의 사이트가 Internet Explorer 8에서도 정상적으로 표시될 있도록 특별한 조치를 취해야 합니다. 그래서 마이크로소프트는 이전 버전의 Internet Explorer와의 호환성을 유지할 있도록 사이트단위 또는 페이지단위 적용할 있는 메타 태그 제공합니다. 태그를 다음에 안내되는 절차에 따라 추가하면 별도의 변경 작업 없이 Internet Explorer 8 이전 버전의 Internet Explorer에서와 동일한 방식으로 웹사이트를 렌더링하게 됩니다. 임시 방법으로 사이트 관리자는 단기적으로 Internet Explorer8과의 호환성을 확보할 있게 되고, 장기적으로 표준 방식으로 웹사이트를 전환해 나갈 있는 시간적인 여유를 가지게 것입니다.

    마이크로소프트는 사이트 관리자들이 다음에 소개되는 단계별 절차에 따라 즉시 사이트 또는 페이지에 메타태그를 적용하여 호환성을 확보할 있도록 권고합니다.

     


    (http://www.microsoft.com/windows/products/winfamily/ie/ie8/readiness/DevelopersExisting.htm)

    권고안 1) 웹사이트별 메타태그 적용 방안

    사이트 소유자와 관리자는 Internet Explorer 8 Internet Explorer 7에서와 동일하게 페이지를 렌더링하도록 다음과 같이 사용자 지정 HTTP 헤더를 사이트 구성에 추가 있습니다.

    X-UA-Compatible: IE=EmulateIE7

     

    Windows Server 2008 기반 컴퓨터의 인터넷 정보 서비스 7에서 사이트 수준에 HTTP 응답 헤더를 추가하려면 다음 단계를 따릅니다.

     

    1.     시작, 관리 도구, 인터넷 정보 서비스(IIS) 관리 차례로 누릅니다.

    2.     연결에서 원하는 서버를 클릭한 다음 사이트 클릭합니다.

    3.     사용자 지정 HTTP 응답 헤더를 추가할 사이트를 클릭합니다.

    4.     사이트 이름 에서 IIS 섹션의 HTTP 응답 헤더 클릭합니다.

        참고 단계에서 사이트 이름 사이트의 이름입니다.

    5.     동작에서 추가 클릭합니다.

    6.     이름 상자에 X-UA-Compatible 입력합니다.

    7.     상자에 IE=EmulateIE7 입력합니다.

    8.     확인 누릅니다.

    인터넷 정보 서비스 6 이전 버전에서 사이트 수준에사용자 지정 HTTP 응답 헤더를 추가하려면 다음 단계를 따릅니다.

     

    1.     시작, 실행 차례로 클릭하고 inetmgr.exe 입력한 다음 확인 클릭합니다.

    2.     원하는 서버를 확장한 다음 사이트 확장합니다.

    3.     원하는 사이트를 마우스 오른쪽 단추로 누른 다음 속성 누릅니다.

    4.     사용자 지정 HTTP 헤더에서 추가 클릭합니다.

    5.     사용자 지정 헤더 이름 상자에 X-UA-Compatible 입력합니다.

    6.     사용자 지정 헤더 상자에 IE=EmulateIE7 입력합니다.

    7.     확인 차례로 누릅니다.

    권고안 2) 웹페이지별 메타태그 적용 방안

    사이트 소유자와 관리자는 페이지의 <Head> 태그 뒤에 다음과 같은 특수 HTML 태그를 포함할 있습니다.

    <meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" />

    페이지별로 Internet Explorer 7 호환성 모드 태그를 사용하는 예는 다음과 같습니다.

    <html>

    <head>

           <!-- IE7 모드 사용 -->

           <meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" />

           <title>My Web Page</title>

    </head>

    <body>

            <p>Content goes here.</p>

    </body>

    </html>

     "

    즉 이말은 IE8에서 페이지를 IE7 처럼 에뮬레이트 하는 것인데, IE 8 버전이 아무리 잘 만들어 졌다고는 하지만, 현실적으로 지금도 문제가 있는 것은 사실이고, 100% 웹표준을 준수했다고는 말할 수 없는게 현실이다.

    왜냐하면 현재 작업하고 있는 사이트는 파이어폭스 3.0 오페라 9.0 사파리 3.0, 4.0 에서는 아무런 문제없이 제대로 보이기 때문이다. 심지어 IE 6에서도 문제가 없다가, IE8 에서만 문제가 발생하는 것은 IE8 에서 완벽한 웹표준을 구현하지 못했다는 반증이 아닐까 싶다.