IE가 CSS 처리를 규격대로 하지 않습니다.
padding과 margin 처리는 제멋대로이고, 규격에는 상위 요소를 가져오게 되어있는 inherit 도 작동하지 않는 경우가 허다합니다. 특히나 font-size 가 inherit 안되는 것 때문에 열받는 경우가 많군요. 적용성 가이드라인에 맞춰서 상대 크기로 적용을 하면 상위 레벨의 크기를 가져오질 못하니, 그 요소에 대해서 절대 크기를 지정할 수 밖에 없더군요.
부득이한 경우에는 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용으로 개발한 응용 프로그램에서 별다른 호환성 문제가 발생하지 않는다는 점입니다.
http://validator.w3.org/여기서 validate
http://validator.w3.org/
여기서 validate 해보실 경우 문제는 없고요..?
HTML 보다는 CSS 쪽 아니던가요?HTML 태그의 경우는 표준만
HTML 보다는 CSS 쪽 아니던가요?
HTML 태그의 경우는 표준만 지킨다면 별 상관없는데, CSS 가 적용되는 룰이 조금 다른 듯 하더군요.
그것때문에 좀 성가신 작업을 한 적이 있거든요. :)
__________________________________
나는 세상에서 가장 중요한 사람이다.
[quote="검은해"]http://validator.w3.org/
네, 없습니다. :(
네, 맞습니다. CSS 쪽입니다.
도대체 왜 다를까요... -_-
물론 CSS Validator 도 통과했습니다.
----
그냥 하소연이였네요. :)
----
블로그 / 위키 / 리눅스 스크린샷 갤러리
IE가 CSS 처리를 규격대로 하지 않습니다.padding과 marg
IE가 CSS 처리를 규격대로 하지 않습니다.
padding과 margin 처리는 제멋대로이고, 규격에는 상위 요소를 가져오게 되어있는 inherit 도 작동하지 않는 경우가 허다합니다. 특히나 font-size 가 inherit 안되는 것 때문에 열받는 경우가 많군요. 적용성 가이드라인에 맞춰서 상대 크기로 적용을 하면 상위 레벨의 크기를 가져오질 못하니, 그 요소에 대해서 절대 크기를 지정할 수 밖에 없더군요.
CSS에 관해서는 모질라가 규격 대로 작동하는겁니다. IE가 못쓸녀석이지요.
IE6 이상에서는 !DOCTYPE 선언을 사용하면 조금이나마 더 표준에
IE6 이상에서는 !DOCTYPE 선언을 사용하면 조금이나마 더 표준에 맞는 형식으로 보여줍니다.
http://www.microsoft.com/korea/msdn/workshop/author/css/overview/cssenhancements.asp
부득이한 경우에는 IE의 버그(?)를 이용해서 다음과 같은 식으로 IE용 코드와 모질라(와 그밖의 표준을 지키는 브라우저)용 코드를 분리할 수 있습니다.
ps. 위의 페이지에 있는 다음 문구가 정말 인상적입니다. :-)
애초에 잘 만들지...
W3C Validator 를 통과하려면 DOCTYPE은 꼭 지정을 해야하
W3C Validator 를 통과하려면 DOCTYPE은 꼭 지정을 해야하지요.
지정 해도 제대로 안되는게 많은게 IE입니다. IE 6는 그나마 '조금' 낫다고 해도, 아직도 5.0, 5.5 쓰는 사람이 많은 실정이니까요.
제 경우는 개인 사이트는 '이 사이트는 IE에서는 잘 안보이니 다른 브라우저 써라!!' 라고 해두고, 그 외의 경우는 호환 맞춘다고 개고생 하는 편이군요. :(
한글 Mozilla 프로젝트에 Cross Browsing 가이드가 있습니
한글 Mozilla 프로젝트에 Cross Browsing 가이드가 있습니다.
http://www.mozilla.or.kr/mozilla/standard/
http://star4u.org
http://mirror.star4u.org