quirks 모드와 strict 모드

  출처 : http://naradesign.net/wp/2007/03/27/118/

웹표준, 웹접근성, 유니버설디자인, HTML, CSS, UI, UX, UD

Quirks Mode 렌더링과 DTD.

웹 브라우저가 Quirks Mode와 Strict Mode를 갖게 된 이유.

대부분의 웹 브라우저는 두 가지 렌더링 모드를 지니고 있으며 그것은 바로 Quirks Mode와 Strict Mode 입니다. 이렇게 두 가지 렌더링 모드를 지니게 된 것에는 나름의 이유가 있습니다. 웹 브라우저의 렌더링은 점점 표준에 가깝게 개선되었지만 그렇지 못한 오래된 웹페이지들은 최신 버전의 브라우저에서 깨져 보이게 되는데 이를 위하여 각 브라우저 벤더들이 fallback을 제공하고 있는것입니다. 이것은 마치 제 얼굴이 너무 못생겨서 최신의 미남형으로 성형수술을 했더니 사람들이 저를 몰라보는 바람에 다시 옛날 모습의 가면을 뒤집어 쓰는것과 비슷한 상황입니다. IE5 가 최초로 이것을 시도했고 다른 브라우저 벤더들도 이런 케이스를 따르기 시작했습니다. Quirks Mode는 오래된 웹페이지를 깨지 않으려는 의도가 담겨져 있습니다. 하지만 UI개발자들은 이것 때문에 골치가 아프죠. Quirks Mode상태로 Cross Browsing유지하는 사이트들을 보면 절로 감탄이 나옵니다.(사실 제가 지금 그러는 중입니다 ㅜㅡ;)

웹 브라우저는 문서의 DTD에 따라서 Quirks Mode와 Strict Mode로 전환 됩니다.

여러 종류의 DTD가 있지만 현재 가장 많이 사용되고 있는 DTD와 해당 DTD별로 웹 브라우저가 어떤 렌더링 모드를 갖게 되는지 정리해 봅니다. 표를 보면 아시겠지만 DTD는 아래쪽에 있는 것일 수록 권장되며 제가 권장하는 DTD는 과거 문서와의 호환성을 지닌 최신버전의 XHTML 1.0 Transitional 모드 입니다.

표 보는법

Q :
Quirks Mode (하위버전 렌더링 호환성 유지 모드)
A :
Almost Standards Mode (표준에 준하는 모드)
S :
Standards Mode (표준 준수 모드)
DTD Switching에 따른 웹 브라우저별 렌더링 모드 전환 표(참조문서)
DTD의 종류 IE6,7 FF2 OP9 SF2
None DTD가 없는 경우 Q Q Q Q
HTML 4.01 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> Q Q Q Q
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> A A A A
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"> A S S S
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> A S S S
XHTML 1.0 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> A A A A
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> A S S S

여기서 한 가지 주의할 점은 Quirks Mode라고 해서 모든 브라우저가 동일하게 렌더링 하는것은 아니라는 점 입니다. 브라우저마다 Quirks Mode 상태일때 호환시키려고 하는 요소들이 각각 다릅니다. 예를들면 Quirks Mode 상태일때 IE는 Box Model을 잘못 해석하지만 나머지 브라우저들은 Quirks Mode 상태라고 할지라도 Box Model에 대하여 표준을 준수하기 때문입니다.

Rendering Mode(Quirks & Strict)에 따른 주요 이슈별 표준 지원 현황.

렌더링 모드(DTD)를 전환했을 때 화면에 차이가 발생한다는 것은 해당 브라우저가 어떤 속성을 Quirks Mode 상태로 렌더링 했다는 뜻입니다. 그리고 렌더링 모드(DTD)가 전환될 때 렌더링의 차이가 없는 경우도 있습니다. 이런 경우는 해당 브라우저가 Quirks Mode 상태라고 할지라도 해당 속성에 대하여 W3C표준을 지원한다는 뜻입니다.

Rendering Mode에 따른 주요 이슈별 표준 지원 현황(참조문서) S:W3C Standard, N:None Standard
Browser→ IE6 IE7 FF2 OP9 SF2
Mode→ Quirks Strict Quirks Strict Quirks Strict Quirks Strict Quirks Strict
width & padding, border
width값에 padding, border값이 포함되지 않는것이 표준
N S N S S S S S S S
margin:0 auto
width값이 적용된 block-lebel 요소는 가운데로 정렬되는 것이 표준
N S N S S S S S S S
.test:hover
가상선택자는 모든 선택자(type selector, id selector, class selector)와 조합될 수 있음
N N N S N S S S S S

 

위 세 가지 이슈들은 비교적 사용빈도가 높다고 판단되어 열거하였습니다. 하지만 이 세 가지 이슈 외에도 더 많은 항목을 보려면 제가 참조했던 문서를 확인하세요.

Cross Browsing을 유지하려면 Quirks Mode를 유발하는 DTD를 피할 것.

Quirks Mode를 유발하기 때문에 피해야 할 DTD 형식은 아래와 같습니다.

  • DTD를 적지 않는 경우.
  • <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

Almost Standard 또는 Standard 모드로 렌더링 되는 DTD는 아래와 같습니다.

  • HTML 4.01 문서라면
    • <!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//EN">
    • <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
  • XHTML 1.0 문서라면
    • <!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 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

건강을 해치는 Quirks Mode, 그래도 사용하시겠습니까?

이 글은 스프링노트에서 작성되었습니다.

by otwm | 2011/07/01 19:30 | web | 트랙백 | 덧글(0)

ubuntu equinox theme

sudo add-apt-repository ppa:tiheum/equinox
sudo apt-get update
sudo apt-get install gtk2-engines-equinox faenza-icon-theme equinox-theme

http://www.linoob.com/2011/04/customized-themes-for-ubuntu-11-04/


by otwm | 2011/05/14 13:32 | 트랙백 | 덧글(0)

우분투 11.04가 나왔따~!

일단 겁니 이쁨니다. 우헤헤헤.... 말이 필요 없습니다.

한번 써보라고 이야기 하고 싶네요.


일단, 달라진게 파폭 4.x로 버전 업 됫고, 이전 버전에서 플래쉬가 간혹 깨지던 현상도 없어졌네요.

또한 어찌된 일인지 구글 doc도 잘 동작합니다. 윈 7에서 파폭4.x 에서는 잘 안되던데,... 어찌된 일인지..흐흠

구글 웨이브도 제대로 동작 하는 듯하고, 작업 공간 나누기도 디자인 업그레이드.뭔가 있어 보이네요.

또한, 추가된 것이 프로그램 검색기능. 윈도우엔 이전부터 잇던건데. 우분투도 추가 됫네요.

그리고 포커싱되어 있는 프로그램에 따라 위쪽의 메뉴바도 변경되네요.

이정도면 테마 교체 안해도 그럭 저럭 쓸수 있을듯.....

일단 모냥새는 맘에 드는 군요.. \+_+/ ㅋㅋㅋ

사용자 편의성도 만이 신경 쓴거 처럼 보인는 군요.

프로그램 호환성은 어떨지 ... 흐흠 아무튼 이 정도면 첫느낌은 괜춘하네요.


차례대로 파폭, 분활화면, 아마록, STS 입니다.


by otwm | 2011/05/02 22:37 | 잡동사니 | 트랙백 | 덧글(0)

Ubuntu에서 자바 사용

-- ubuntu 에서 기본으로 openjdk 를 사용한다. 또한 기본적으로 jdk가 아닌 jre만을 사용한다.

이번에 자바 개발환경 구축을 위해서 openjdk가 아닌 sun-java6-jdk를 사용하기로 했다. 근본적으로는 별문제는 없고, 어느쪽을(sun-java6-jdk나 openjdk6든) 크게

차이는 없다고 한다.다만, 약간 다르다는 것을 어딘가서 본적있는듯 하다.

 

설치 절차는

1.레포지토리 추가 및 갱신(추가되어 있다면 상관 없다.)

2.자바 설치

3.자바사용버전 변경

4.환경변수 설정

 

상세)

1.레포지토리 추가 및 갱신(추가되어 있다면 상관 없다.)

레포지토리 관련해서 시냅틱 꾸러미 관리자를 사용하거나 또는 콘솔에서 명령어를 사용할 수 있다.

명령어로 한다면

추가)

sudo add-apt-repository "deb http://archive.canonical.com /ubuntu maverick partner"

sudo add-apt-repository "deb-src http://archive.canonical.com /ubuntu maverick partner" (소스; 이상하게 소스는 잘추가 안되는 듯하다.)

갱신)

sudo apt-get update

 

2.자바설치

sudo apt-get install sun-java6-jdk

 

3.자바사용버전 변경

sudo update-alternatives --config  java

 

4.환경정보 설정

/etc/profile(콘솔;전역)

/etc/environment(GUI)

/etc/bashrc(콘솔;사용자)

 

#JAVA_HOME
JAVA_HOME=/usr/lib/jvm/java-6-sun-1.6.0.24/
export JAVA_HOME

 

저장소 관련 정보는 /etc/apt/source.list 에서 확인 가능하며 삭제도 가능 하다.

위와 똑같은 방법으로 시냅틱 꾸러미 관리자를 사용할 수도 있다.(생략)

이 글은 스프링노트에서 작성되었습니다.

by otwm | 2011/03/27 19:01 | java | 트랙백 | 덧글(0)

◀ 이전 페이지          다음 페이지 ▶