doctype에 따른 브라우저별 렌더링 방식의 차이

2007/10/29 01:16
웹표준 바람이 그 어느때보다 거세다.

신규서비스들의 모든 기획안에서 이미 웹표준은 반드시 포함시켜야할 이슈로 자리잡았다.

그렇지만 웹표준을 준수하고 접근성을 유지하며 HTML과 CSS를 이용하여 문서와 표현을 분리,

레이아웃을 위한 table을 버릴줄 아는 웹퍼블리셔는 아직 업체의 수요만큼 공급이 충분히 되지 않고 있다.

훌륭한 인력들은 이미 웹쪽에 있는 회사들중 이름있고 규모있는 회사가 인력을 싹쓸이 해갔고,

그렇기에 중소 웹에이전시는 웹표준을 포함해 달라는 클라이언트측의 요구에 사람을 구하지 못해서

발만 동동구르고 있는 상황이다.

그래서 웹디자이너를 급하게 교육시키거나

기존의 HTML코더에게 웹표준책을 던져주면서 해보라고 다그치는 꼴이다.


table을 레이아웃을 위해 사용하고 IE가 만들어낸 비표준 태그를 마구 사용하고

모든 표현도 HTML 속성을 이용하여 때우던 시절의 기질을 벗어던지고

HTML과 CSS로 문서와 표현을 분리하여 웹사이트를 구현하기위한

가장 첫번째 단계는 DOCTYPE의 선언이다.


우리나라의 90%가 넘는 사람들이 사용하고 있는 IE(인터넷 익스플로어)는

quirk 모드라고 불리는 IE의 기본렌더링 방식이 웹표준에 맞지 않다.


그 대표적인 예로 박스모델링을 꼽을수 있다.

http://trio.co.kr/webrefer/css2/box.html


이곳에 박스모델링에 대한 자세한 설명이 나와있다.


짧게 글로 설명하자면

width:200px;
height:200px;
padding:20px;

위의 CSS를 블록레벨엘리먼트에 적용을 하면

표준렌더링은 200px * 200px의 박스에 padding:20px이 상하좌우에 더해져서

240px * 240px의 박스를 생성하게 된다.

하지만 quirk모드의 IE는

200px*200px의 박스를 생성하고 그 안에 padding:20px를 상하좌우에 적용하게 되어

실제적으로 160px*160px의 박스에 상하좌우 20px의 패딩이 적용된 박스가 나타나게 된다.



이처럼 IE의 quirk모드의 렌더링은 표현에 있어서 아주 중요한 박스모델링에서

큰 차이가 있기 때문에 웹표준을 사람들이 처음 접하는 문제 이기도 하다.



하지만 DOCTYPE을 HTML의 최상단에 선언 하게되면 IE는 standard모드로 렌더링을 한다.


비로소 이렇게 되어야만 진정한 웹표준 문서이기도 하지만

표준방식에 의한 렌더링을 하게 되어 보다 편리하고 쉽게 표현을 구성해나갈수 있다.


DOCTYPE은 그 문서의 규약(DTD)에 따른 여러 종류가 있다.

http://gutfeldt.ch/matthias/articles/doctypeswitch/table.html


위 링크를 따라가면 종류별로 DOCTYPE이 나와있고

DOCTYPE별로 브라우저가 어떤 방식으로 렌더링 하는지(quirk, standard)에 대해서 자세히 나와있다.



그런데 요근래들어서 어처구니 없는 사이트를 몇개 발견하였다.

DOCTYPE을 잘못 복사하기를 했는지 잘못타이핑 했는지 모르겠지만

오타가 난 DOCTYPE선언을 한곳도 있었고(IE에서 물론 표준 렌더링이 되지 않는다)


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN">

HTML 4.01의 위의 두가지 DOCTYPE을 선언하고 작업을 한 경우도 발견하였다.

언듯보면 어 맞는거 같은데 라고 생각할지 모르겠지만

위의 링크에도 나와있듯이

이 선언은 대다수의 브라우저가 quirk모드로 렌더링을 하게 된다.


DOCTYPE은 웹표준준수의 첫걸음입니다.

시작이 반이라는 말도 있지요.

DOCTYPE 제대로 선언합시다.
크리에이티브 커먼즈 라이선스
Creative Commons License
이 저작물은 크리에이티브 커먼즈 코리아 저작자표시 2.0 대한민국 라이선스에 따라 이용하실 수 있습니다.
블로그코리아에 블UP하기

웹표준의 그 첫번재 단계

2006/02/27 20:26

Using web standards - Step 1: use the correct doctype

"Many developers still don't realize that newer browsers look for a DOCTYPE at the top of each page, and will change the way they behave in response to it. Without the correct DOCTYPE, browsers can take your standards-compliant page and render it all wrong."

Read more:

내가 방문했다는 webstandardgroup에서 발췌한 내용이다

웹표준의 첫번째 단계는 올바른 doctype을 사용하는 것이란다.

세상에 웹표준웹표준 내가 스스로 내 자신에게 일렀거늘

웹표준의 1단계조차지키지 않았다니...

완전 오늘은 내자신을 좀 자책해줘야겠다.

어줍잖게 해석해보자면

많은 개발자들은 아직도 새로운 브라우저는 각페이지의 최상단에서 DOCTYPE을 찾고, 그 방법대로 변화시킬것이며, 새 브라우저는 그들은 그것에 응답하여 처신할 것이란것을 깨닫지 못하고 있다.  올바른 DOCTYPE 없이, 브라우저는 너의 고분고분한표준 페이지들을 가져갈수 있으며, 그것을 모두 틀리게 표현할 것이다

뭐 한마디로 DOCTYPE 안쓰면 혼난다! 이거다.

DOCTYPE의 종류에 대해선 위의 링크에 나와있다.

어떤 혹자가 저것도 마자 해석해주세요. 하면...

아이피 차단을 걸어버릴지도... 이 짧은 문장을 해석하는데도 한참을 걸렸단말이다!
크리에이티브 커먼즈 라이선스
Creative Commons License
이 저작물은 크리에이티브 커먼즈 코리아 저작자표시 2.0 대한민국 라이선스에 따라 이용하실 수 있습니다.
블로그코리아에 블UP하기

최근댓글

최근 트랙백