sitelink1 | http://zine.standardmag.org/ |
---|---|
sitelink2 | |
sitelink3 | http://1 |
sitelink4 | http://ko |
extra_vars5 | |
extra_vars6 | sitelink1 |
Quirks Mode
웹을 사용할 수 있도록 해주는 브라우저.
이 시장을 장악하려는 브라우저 벤더들의 노력은 웹 사이트 제작자들의 코드까지 바꿔놓았다.
브라우저 제작사의 무기인 Quirks Mode란 무엇인지, 왜 중요한지 알아본다.
...
DOCTYPE 선언하지 않는다면 브라우저는 현재 페이지가 어떠한 HTML 버전을 사용하고 있는지 인식할 수 없기 때문에 호환모드(quirks mode)로 변환을 해서 rendering(화면구현)하게 된다.
브라우저가 알아서 호환모드로 변환하여 rendering하는 것을 어찌보면 브라우저가 똑똑하다고 생각할 수 있겠지만 실제론 그 반대이다. 마크업과 스타일시트의 조합으로 멋진 사이트를 제작했다 하더라도 호환모드로 rendering한 브라우저는 매번 똑같은 화면묘사를 보여준다는 보장을 할 수 없기때문에 사용자에게 큰 혼란을 가져다 줄 수도 있기 때문이다.
다음 코드는 W3C에서 권장하는 DOCTYPE 의 종류이다. (참고 : http://www.w3.org/QA/2002/04/valid-dtd-list.html)
HTML 4.01
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">
XHTML 1.0
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
XHTML 1.1
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
...
대부분의 랜더링 모드 이슈는 인터넷 익스플로러의 것만을 논하고 있는데 이는 인터넷 익스플로러의 표준, 호환모드가 랜더링에 있어서 가장 차이가 크기 때문이다.(부연 참고) 보통 알려져 있는 것 같이 패딩과 보더의 구현이 확연하게 다르고 모드의 변화에 따라서 몇몇 버그도 수정이 되기 때문에 인터넷 익스플로러를 위해서 랜더링 모드를 주의해서 선택해야 한다.
...
솔루션이 웹 에디터를 가지고 있으면 이 웹 에디터가 표준 랜더링 모드를 지원하는지, 표준 랜더링 모드에서 정상적으로 작동하는지를 미리 체크해 봐야 한다. 외산의 웹 에디터들의 경우 표준/호환 모드 양쪽에서 잘 작동하는 경우가 대부분이지만 국산 웹 에디터의 경우 호환 모드만 사용해야 하고 표준모드를 사용할 경우 화면이 제대로 출력이 되지 않고 기능이 작동하지 않는 경우가 대부분이다.
...
호환모드에서만 작동하는 스크립트 기능들이 있는지 검토해 보아야 한다. 가장 대표적인 예는 화면 옆에서 스크롤에 따라서 같이 움직이는 배너와 같은 기능이 있다. 화면의 스크롤이나 화면 크기를 참조해서 작동하는 스크립트의 경우 호환모드에서만 작동할 가능성이 높다. 마우스 클릭을 하면 레이어를 띄우는 스크립트나 달력에서 날짜를 선택하게 하는 스크립트 등도 이러한 경우에 속한다. 스크립트가 간단하면 표준모드에서 작동할 수 있게 수정해서 써도 되지만 그렇지 않은 경우에는 충분히 고려해야 한다.
...
DTD의 선택
1. Strict 이냐? Transitional 이냐?
2. HTML 이냐? XHTML 이냐?
- 부연 -
다음과 같은 메타 태그로 browser 의 document mode 를 설정할 수 있다.
<meta content="IE=Edge" http-equiv="X-UA-Compatible"/>
content 속성내의 IE 에 설정할 수 있는 값은 다음과 같다
- 6 : IE6
- 7 : IE7
- 8 : IE8
- 9 : IE9
- Quirks : IE5
- Edge : browser 버전에 따른다
스크립트로 정의한 meta 의 정보를 살펴볼 수 있다.
-> document.getElementsByTagName('meta');
단, meta 정보는 페이지가 로드되면서 초기화되기 때문에 스크립트에서 조작할 수는 없다.
댓글 0
번호 | 제목 | 글쓴이 | 날짜 | 조회 수 |
---|---|---|---|---|
14 | characters from ISO 8859-1 | 황제낙엽 | 2020.11.10 | 29691 |
13 | 스마트 기기에서 여러 단말기의 해상도에 대응하기 위해 사용하는 HTML viewport meta tag | 황제낙엽 | 2020.11.06 | 136 |
12 | 서버의 이미지나 txt 파일을 웹브라우저에서 다운로드하기 | 황제낙엽 | 2019.05.13 | 217 |
11 | When to encode space to plus (+) or %20? (application/x-www-form-urlencoded) | 황제낙엽 | 2019.04.15 | 207 |
10 |
HTTP 요청 헤더 III - If-Match, If-Modified-Since, If-None-Match
![]() | 황제낙엽 | 2018.03.27 | 158 |
9 | HTTP Cache-Control 요청 지시어 | 황제낙엽 | 2018.03.09 | 153 |
8 | ScrollBar의 출력형태 | 황제낙엽 | 2012.09.14 | 138 |
7 | Javascript 로 Flash Object 생성시 유의 사항 | 황제낙엽 | 2012.08.28 | 171 |
6 | DOCTYPE선언과 Quirks모드 | 황제낙엽 | 2011.10.05 | 209 |
5 | 웹표준으로 플래시(Flash) 출력 하기 | 황제낙엽 | 2011.02.14 | 100 |
4 | Embed 를 제거하여 XHTML 표준 따라가기 | 황제낙엽 | 2011.02.14 | 106 |
3 |
웹표준을 지키기 위한 노력 Firefox의 HTML Validator
![]() | 황제낙엽 | 2011.02.10 | 116 |
» | DOCTYPE과 DTD 그리고 Quirks Mode | 황제낙엽 | 2011.02.10 | 251 |
1 |
웹 표준 개발자의 IE8 고려사항(quirk)
![]() | 황제낙엽 | 2010.10.25 | 131 |