Doctype을 남겨두고 브라우저를 Quirks 모드로 전환하십시오.
몇 달 이상 웹 페이지를 디자인 해왔다면 모든 브라우저에서 똑같은 페이지를 작성하는 데 어려움을 느낄 가능성이 큽니다. 사실 그것은 불가능합니다. 많은 브라우저에는 처리 할 수있는 특수 기능이 있습니다. 또는 다른 브라우저에서 처리하는 방식과 다른 점을 처리하는 특별한 방법이 있습니다. 예 :
- 레이어는 넷스케이프 브라우저에서 사용하기 위해 만들어졌습니다. 다른 브라우저에서는 작동하지 않으며 Netscape 6.x +에서는 더 이상 사용되지 않습니다.
- 인라인 프레임 은 원래 Internet Explorer 전용으로 만들어졌으며 이후 HTML 사양의 일부가되었습니다.
- Internet Explorer 6.0은 추가 공간 (예 :
) 주변 태그를 사용하지 마십시오. div의 내용을 모두 하나의 (긴) 줄에 쓰지 않는 한. (IE 6에는 이것뿐만 아니라 더 많은 단점이 있습니다.) - Netscpe 4.7은 올바른 HTML로 작성되지 않은 표를 표시하지 않습니다. 대신 빈 페이지가 표시됩니다. 이것은 Netscape 6에서 수정되었습니다.
브라우저 개발자의 문제는 구형 브라우저 용으로 빌드 된 웹 페이지와 역 호환되는 웹 브라우저를 만들어야한다는 것입니다. 이 문제를 해결하기 위해 브라우저 제조업체는 브라우저가 작동 할 수있는 모드를 만들었습니다.이 모드는 DOCTYPE 요소의 존재 여부와 DOCTYPE 호출에 의해 정의됩니다.
DOCTYPE 스위칭 및 "Quirks 모드"
웹 페이지에 다음 DOCTYPE을 넣으면 :
최신 브라우저 (Android 1 이상, Chrome 1 이상, IE 6 이상, iOS 1 이상, Firefox 1 이상, Netscape 6 이상, Opera 6 이상, Safari 1 이상)는 다음과 같은 방식으로이를 해석합니다.
- 올바르게 작성된 DOCTYPE이 있기 때문에 표준 모드를 트리거합니다.
- HTML 4.01 과도기 문서입니다.
- 표준 모드이기 때문에 대부분의 브라우저는 HTML 4.01 과도기 (또는 대부분 호환)로 콘텐츠를 렌더링합니다.
그리고이 DOCTYPE을 문서에 넣으면 :
이것은 최신 브라우저에게 DTD를 엄격하게 준수하여 HTML 4.01 페이지를 표시하려는 것을 나타냅니다.
이러한 브라우저는 "엄격한"또는 "표준"모드로 전환하여 표준을 준수하도록 페이지를 렌더링합니다. HTML 4.01 Strict에서는 FONT 요소가 더 이상 사용되지 않으므로이 문서의 경우 브라우저와 같은 태그는 브라우저에서 완전히 무시 될 수 있습니다.
DOCTYPE을 완전히 그대로두면 브라우저가 자동으로 "단점"모드로 전환됩니다.
아래 표는 일반적인 DOCTYPE 선언이있을 때 일반 브라우저에서 수행하는 작업을 보여줍니다.
마이크로 소프트, 더 힘들어 짐
Internet Explorer 6에는 DOCTYPE 선언보다 위에있는 항목을 모두 놓으면 쿼크 모드로 전환되는 기능이 있습니다. 따라서 DOCTYPE 선언이 엄격한 표준 모드라고하더라도이 두 예제 모두 IE 6을 버크 모드로 전환합니다.
및 XHTML 1.1 DOCTYPE :
또한 IE6을 지나치게되면 Microsoft는 IE8 및 IE9 : META 요소 전환 및 웹 사이트 블랙리스트에 추가 한 "기능"을 갖게됩니다. 사실,이 두 브라우저 버전은 이제 최대 7 개의 다른 모드를가집니다.
- IE 5.5 쿼크 모드 (IE 8 및 9)
- IE 7 표준 모드 (IE 8 및 9)
- IE 8 거의 표준 모드 (IE 8 및 9)
- IE 8 표준 모드 (IE 8 및 9)
- IE 9 거의 표준 모드 (IE 9)
- IE 9 표준 모드 (IE 9)
- XML 모드 (IE 9)
또한 IE 8은 사용자가 렌더링 모델을 다시 IE 7 모드로 변경할 수있는 "호환성 모드"를 도입했습니다. 따라서 DOCTYPE 및 META 요소를 사용하여 설정하려는 모드를 설정하더라도 페이지는 여전히 덜 표준을 준수하는 모드로 푸시 될 수 있습니다 .
Quirks 모드 란 무엇입니까?
Quirks 모드는 이상한 렌더링과 비 호환 브라우저 지원 및 웹 디자이너가 이러한 것들을 처리하기 위해 사용하는 해킹을 처리하는 데 도움이되도록 만들어졌습니다. 브라우저 제조업체가 가진 우려 사항은 브라우저를 완전한 사양 준수로 전환하면 웹 디자이너가 뒤처지게된다는 것입니다.
DOCTYPE 전환과 "Quirks 모드"를 설정함으로써 웹 디자이너는 브라우저에서 HTML을 렌더링하기를 원하는 방식을 선택할 수있었습니다.
Quirks 모드 효과
대부분의 브라우저가 Quirks 모드에서 사용하는 몇 가지 효과가 있습니다.
- 일부 브라우저에서는 상자 모델이 단점 모드의 상자 모델의 IE 5.5 버전으로 변경됩니다.
- 일부 브라우저는 스타일을 테이블에 상속하지 않습니다.
- Quirks 모드는 CSS와 CSS 레이아웃의 구문 분석에 큰 영향을줍니다. 단점 모드에서 표준 모드로 페이지를 변환하는 경우 CSS 레이아웃을 테스트하고 광범위하게 구문 분석해야합니다.
- 쿼크 모드에서 스크립팅에 대한 변경 사항을 확인하십시오. 예를 들어, Firefox는 id 속성이 작동하는 방식을 변경합니다. IE8과 IE9는 쿼크 모드에서 스크립팅에 대한 극적인 변화를 가져 왔습니다.
또한 "거의 표준 모드"에서 차이점이 있습니다.
- 내부 이미지 만있는 표 셀의 높이는 표준 모드와 다르게 계산됩니다.
DOCTYPE을 선택하는 방법
내 문서 DOCTYPE 목록에서 더 자세히 설명 하겠지만 다음은 몇 가지 일반적인 규칙입니다.
- 항상 표준 모드를 먼저 선택하십시오. 그리고 현재 사용하고있는 표준은 HTML5입니다. HTML5 DOCTYPE을 사용하지 않아야하는 특별한 이유가있는 경우가 아니라면이 것을 사용해야합니다.
- 레거시 요소의 유효성을 검사하거나 어떤 이유로 새로운 기능을 사용하지 않으려는 경우 엄격한 HTML 4.01로 이동하십시오.
- 표에서 이미지를 잘라서 고치지 않으려는 경우 Transitional HTML 4.01 :
- Quirks 모드에서 의도적으로 페이지를 쓰지 마십시오. 항상 DOCTYPE을 사용하십시오. 이렇게하면 나중에 개발 시간을 절약 할 수 있으며 실제로 이점이 없습니다. IE6은 급속도로 인기를 잃고 있으며이 브라우저 (본질적으로 단조로운 모드로 설계된 것)를 디자인하면 자신, 독자 및 페이지를 제한하게됩니다. IE 6 또는 7 용으로 작성해야하는 경우 최신 브라우저를 단점 모드가 아닌 조건 별 주석을 사용하여 지원하십시오.
DOCTYPE을 사용해야하는 이유
이 유형의 DOCTYPE 전환이 발생하면 브라우저가 귀하의 페이지에서 기대할 수있는 것을 나타내는 DOCTYPE을 사용하여 웹 페이지에 직접 영향을 줄 수 있습니다. 또한 DOCTYPE을 사용하기 시작하면 유효한 HTML에 가까운 HTML을 작성하게됩니다 (유효성을 검사해야합니다). 또한 유효한 XHTML을 작성함으로써 브라우저 제조업체가 표준 준수 브라우저를 구축 할 것을 권장합니다.
브라우저 버전 및 쿼크 (Quirks) 모드
DOCTYPE | 기계적 인조 인간 크롬 Firefox IE 8 이상 iOS Opera 7.5 이상 원정 여행 | IE 6 IE 7 오페라 7 | 넷스케이프 6 |
---|---|---|---|
없음 | 쿼크 모드 | 쿼크 모드 | 쿼크 모드 |
HTML 3.2 | |||
쿼크 모드 | 쿼크 모드 | 쿼크 모드 | |
HTML 4.01 | |||
과도기적 | 표준 모드 * | 표준 모드 * | 표준 모드 |
과도기적 | 쿼크 모드 | 쿼크 모드 | 쿼크 모드 |
엄격한 | 표준 모드 | 표준 모드 * | 표준 모드 |
엄격한 | 표준 모드 | 표준 모드 * | 표준 모드 |
HTML5 | |||
표준 모드 | 표준 모드 * | 쿼크 모드 | |
*이 DOCTYPE을 사용하면 브라우저가 표준에 가깝지만 몇 가지 문제가 있습니다. 테스트해야합니다. 이를 "거의 표준 모드"라고도합니다. |