브라우저 호환성과 박스 모델
글쓴이: feanor / 작성시간: 수, 2003/11/19 - 4:19오후
maddie님이 다른 타래에서 쓰시길:
Quote:
기능만 구현되면 css도 상당부분 호환성을 가질 수 있지만 디자인상 모질라와 익스간에 약간의 차이가 있습니다. 예를 들어 익스에서 width:98px; border:1px;로 하면 98px의 셀이 생기고 그 바깥에 1px짜리 경계선이 나옵니다. 즉, 전체가 100px짜리 셀이 만들어지는 것이지요. 하지만 모질라의 경우 셀은 96px로 나오고 1px짜리 경계선이 안쪽에 나옵니다. 정확히 98px이죠. 어느것이 표준인지, 어떤것이 맞는지는 둘째 치더라도, 이런 세세한 부분까지 컨트롤하기 위해 클라이언트의 브라우저 정보를 체크하여 일일히 계산해 주는 것도 한두개면 모르겠는데 이게 수가 엄청나다보니 머리에 쥐가 납니다. 전 그쪽까지는 포기를 했습니다. 시간 때문에요. 이런 경우가 생각보다 상당히 많습니다.
그 반대입니다. width 는 컨텐트 내용만을 지정하며, border, padding, margin 이 거기에 합해져야 맞습니다. 모질라와 IE 6 의 strict mode 는 이것을 표준에 맞게 처리하며, IE 5 는 잘못 처리합니다.
이 방법에 대한 간단한 해결책은 Box Model Hack 이라고 불리며 다음 페이지에서 찾아볼 수 있습니다.
http://css-discuss.incutio.com/?page=BoxModelHack
div { width: 100px; } div { \width: 140px; w\idth: 100px; }
예를 들어 width 가 100 px 이고 padding 과 border 가 10 px 씩이라고 합시다. 그럼 표준에 따라 전체 크기는 140px 이 되어야 합니다. 위 코드를 사용하면 IE 5 의 CSS 파싱 버그로 \width 는 적용이 되지만 w\idth 는 적용이 되지 않아 IE 5 에만 140px 이 적용되고 다른 브라우저는 100px 이 적용됩니다. 따라서 쉽게 문제를 해결할 수 있습니다.
잘만 하면 자동화도 가능할 것 같습니다. 그리고 한번 자동화 하면 다시는 신경 쓸 필요가 없죠.
-- feanor
Forums:
갑자기 드는 생각인데, activeX의 문제는 어쩔 수 없다고 하더라도
갑자기 드는 생각인데, activeX의 문제는 어쩔 수 없다고 하더라도 layout 을 IE용에서 모질라용으로 자동으로 컨버전해주는 gateway 같은 것은 어디 존재할만하기도 한것 같은데, 그런 프로젝트는 없나요? user-defined sustitution pattern을 통해 transcoding을 해주는 local proxy의 형태로 작동해준다면 IE전용 페이지가 mozilla에서 이상하게 보이는 문제를 대부분 해결할 수 있을것 같다는 생각이 드는데요.
윗분 말씀처럼 모질라나 파이어버드에서도 IE 방식(? )의HTM
윗분 말씀처럼 모질라나 파이어버드에서도 IE 방식(? )의
HTML을 해석할수 있도록 플러그인을 개발하는
것이 가장 현실적인 이야기 같군요.
웹페이지를 고치는 것보다
( 새로 만들어지는것은 룰을 따른다고 해도 예전것을
다 같이 고쳐야 하니까 자원소모가 심합니다. )
클라이언트의 브라우저를 바꾸는게 좀더 쉽겠죠
rpcss 제거후에 넷스케이프 on W$
윈도 서비스중 rpcss 서버정지로 OLE , javascript, ActiveX , Drag & drop
도 정지되더군요.. 알만한 해외서비스 업체는 대체로 다양한 브라우저 접속을 허용
하는것 같았습니다.
어
[quote="nachnine"]윗분 말씀처럼 모질라나 파이어버드에
근데 문제는 누가 그 짓을 하느냐는 겁니다. 이렇게 IE 전용 문서가 설치는
곳은 세계에서 거의 우리나라밖에 없는 것 같은데 불편하지도 않은데
외국사람이 해줄리는 없고, 결국 우리나라에서 해야 할 것 같은데 말이죠.
-- feanor
Re: 브라우저 호환성과 박스 모델
제가 알기론 그거 IE 6 에도 문제가 있습니다. 문제라기보단, ms 가 표준과 다른 방식을 고수하고 있는거죠. 문서 형식을 xhtml 로 지정해주면 css 표준 박스 모델을 지원해줍니다.
"no error was found with his codes"
Re: 브라우저 호환성과 박스 모델
그게 strict mode 입니다. 원래 글에 적었죠? :-)
DOCTYPE 선언을 해 주면 표준을 잘 지키고, 하지 않으면 quirk mode 라고 해서 이전 버전과의 호환성을 지킵니다. 나름대로 영리한 방법이라고 생각합니다.
-- feanor
Re: 브라우저 호환성과 박스 모델
아.. 글을 잘못 읽었습니다. 'IE 6 의 strict mode' 였군요.. 모질라랑 붙여봐서.. :oops:
"no error was found with his codes"