모질라에서 제대로 보이는 HTML 문서는...

랜덤여신의 이미지

모질라에서 제대로 보이는 HTML 문서는...

IE 에서 당연히 제대로 보일 거라고 생각했습니다.

그런데 아니더군요. :(

심지어 HTML 표준을 지켜도, IE 에서 보이는 거와 모질라에서 보이는 게 다릅니다.

힘들군요. :evil:

Prentice의 이미지

http://validator.w3.org/

여기서 validate 해보실 경우 문제는 없고요..?

행복한고니의 이미지

HTML 보다는 CSS 쪽 아니던가요?
HTML 태그의 경우는 표준만 지킨다면 별 상관없는데, CSS 가 적용되는 룰이 조금 다른 듯 하더군요.
그것때문에 좀 성가신 작업을 한 적이 있거든요. :)

__________________________________
나는 세상에서 가장 중요한 사람이다.

랜덤여신의 이미지

검은해 wrote:
http://validator.w3.org/

여기서 validate 해보실 경우 문제는 없고요..?

네, 없습니다. :(

행복한고니 wrote:
HTML 보다는 CSS 쪽 아니던가요?
HTML 태그의 경우는 표준만 지킨다면 별 상관없는데, CSS 가 적용되는 룰이 조금 다른 듯 하더군요.
그것때문에 좀 성가신 작업을 한 적이 있거든요. :)

네, 맞습니다. CSS 쪽입니다.

도대체 왜 다를까요... -_-

물론 CSS Validator 도 통과했습니다.

----

그냥 하소연이였네요. :)

progcom의 이미지

IE가 CSS 처리를 규격대로 하지 않습니다.
padding과 margin 처리는 제멋대로이고, 규격에는 상위 요소를 가져오게 되어있는 inherit 도 작동하지 않는 경우가 허다합니다. 특히나 font-size 가 inherit 안되는 것 때문에 열받는 경우가 많군요. 적용성 가이드라인에 맞춰서 상대 크기로 적용을 하면 상위 레벨의 크기를 가져오질 못하니, 그 요소에 대해서 절대 크기를 지정할 수 밖에 없더군요.

CSS에 관해서는 모질라가 규격 대로 작동하는겁니다. IE가 못쓸녀석이지요.

lsj0713의 이미지

IE6 이상에서는 !DOCTYPE 선언을 사용하면 조금이나마 더 표준에 맞는 형식으로 보여줍니다.

http://www.microsoft.com/korea/msdn/workshop/author/css/overview/cssenhancements.asp

부득이한 경우에는 IE의 버그(?)를 이용해서 다음과 같은 식으로 IE용 코드와 모질라(와 그밖의 표준을 지키는 브라우저)용 코드를 분리할 수 있습니다.

  #menu { 
        width:240px; 
        padding:0px; 
        margin-left:20px; 
        margin-right:-3px; 
        float:right; 
        /* 
        IE5x PC mis-implements the box model. Because of that we sometimes have 
        to perform a little CSS trickery to get pixel-perfect display across browsers. 
        The following bit of code was proposed by Tantek Celik, and it preys upon a CSS 
        parsing bug in IE5x PC that will prematurly close a style rule when it runs 
        into the string "\"}\"". After that string appears in a rule, then, we can override 
        previously set attribute values and only browsers without the parse bug will 
        recognize the new values. So any of the name-value pairs above this comment 
        that we need to override for browsers with correct box-model implementations 
        will be listed below. 
         
        We use the voice-family property because it is likely to be used very infrequently, 
        and where it is used it will be set on the body tag. So the second voice-family value  
        of "inherit" will override out bogus "\"}\"" value and allow the proper value to 
        cascade down from the body tag. 
 
        The style rule immediately following this rule offers another chance for CSS2 
        aware browsers to pick up the values meant for correct box-model implementations. 
        It uses a CSS2 selector that will be ignored by IE5x PC. 
         
        Read more at http://www.glish.com/css/hacks.asp 
        */ 
        voice-family: "\"}\""; 
        voice-family: inherit; 
        } 
    html>body #menu {
        /* for mozilla */
        margin-right:-6px; 
        } 

ps. 위의 페이지에 있는 다음 문구가 정말 인상적입니다. :-)

Quote:

그러나 정말 뛰어난 점은 이러한 모든 향상에도 불구하고 이전 버전의 Internet Explorer용으로 개발한 응용 프로그램에서 별다른 호환성 문제가 발생하지 않는다는 점입니다.

애초에 잘 만들지...

progcom의 이미지

W3C Validator 를 통과하려면 DOCTYPE은 꼭 지정을 해야하지요.
지정 해도 제대로 안되는게 많은게 IE입니다. IE 6는 그나마 '조금' 낫다고 해도, 아직도 5.0, 5.5 쓰는 사람이 많은 실정이니까요.

제 경우는 개인 사이트는 '이 사이트는 IE에서는 잘 안보이니 다른 브라우저 써라!!' 라고 해두고, 그 외의 경우는 호환 맞춘다고 개고생 하는 편이군요. :(

다콘의 이미지

한글 Mozilla 프로젝트에 Cross Browsing 가이드가 있습니다.
http://www.mozilla.or.kr/mozilla/standard/