문제

의견을 제시하고 싶습니다 (<!-- this --> 스타일) 내 HTML 코드의 최상위에서 DocType 선언 앞에. 이것이 표준에 부합합니까? 주요 브라우저에서 지원됩니까? 이 일에 함정이 있습니까?

도움이 되었습니까?

해결책

쓰기 <!DOCTYPE> 첫 번째는 확실히 모범 사례입니다.

나는 오래 전부터 일부 브라우저 (아마도 IE6)가 무시한 이상한 문제를 기억합니다. <!DOCTYPE> 그 앞에는 무고한 것으로 보이는 것이 있었기 때문에 - 나는 단지 공백이라고 생각하지만 아마도 그것은 댓글 일 것입니다. 어쨌든, 추적 해야하는 것은 끔찍하고 끔찍한 버그였으며, 그 전에 의견이나 공백을 가지고 있어야할만한 충분한 이유는 없습니다. <!DOCTYPE>.

쓰기 <!DOCTYPE> 첫째, 경험이 풍부한 웹 개발자가 끔찍하고 애매한 버그를 피하기 위해하는 일입니다.

다른 팁

그것은이다 완전히 유효합니다 할 것

<!-- this, -->
<!DOCTYPE html>

하지만, 가져옵니다 모두 IE의 버전 기발한 모드 (그렇지 않다면 강요된 Quirks 모드로-참조 Gotchas 아래 섹션). 가장 간단한 것은 doctype 아래에 주석을 옮기는 것입니다.

<!DOCTYPE html>
<!-- this, -->

그러나 또 다른 방법은 "업그레이드" a 적합한 가정 어구 다음과 같은 의견 :

<!--[if !IE]> this <![endif]-->
<!DOCTYPE html>

설명:가정 어구 댓글은 그렇지 않습니다 세다 의견으로, IE의 세계에서.

대체 구문 : 조건부 의견이 HTML 표준에 대한 마이크로 소프트 침입이라는 것을 잊고 기억하려면

<!--[if anybrowser]> this <![endif]-->
<!DOCTYPE html>

마찬가지로, 특히 IE를 대상으로 할 수 있습니다.

<!--[if !anybrowser]> this <![endif]-->
<!DOCTYPE html>

Gotchas

댓글 내부에 조건부 의견은 IE를 퀴크 모드로 가져옵니다 IE가 그것을 본다면 (그건: 만약에 하나는 an을 사용합니다 IF IE 조건 또는 [IF]와 동등한 if! anybrowser 위에서 언급 한 상태.). 예를 들어, 이것은 IE를 Quirks-Mode로 가져올 것입니다.

<![if IE]><!-- this --><![endif]>
<!DOCTYPE html>

그대로

<!--[if IE]><!--><!-- this <![endif]-->
<!DOCTYPE html>

그리고 다른 많은 변종. 예를 들어

<!--[if IE]><!DOCTYPE html><!--><!-- this <![endif]-->
<!DOCTYPE html>

~일 것이다 ~ 아니다 Quirks-Mode의 원인 여기 조건부 의견에는 doctype가 있습니다 ~ 전에 다른 것 콘텐츠이므로 IE는 페이지의 첫 번째 컨텐츠가 DocType이라고 생각합니다.

마지막으로 최신 IE 버전, IE8 및 IE9, 할 수 있습니다 강요된 다른 Microsoft 발명을 사용하여 표준 모드 (및 Quirks-Mode)에게 X-UA 호환 지령. 보다 http://msdn.microsoft.com/en-us/library/cc288325(v=vs.85).aspx 이 경우

<!-- this -->
<!DOCTYPE html>
<!--[if IE]><meta http-equiv="X-UA-Compatible" content="IE=8" ><![endif]-->

~ 할 것이다 IE8 및 IE9로 들어갑니다 무자비한 IE6과 IE7은 계속 유지됩니다 기발한 방법. 반면, 대조적으로 이것

<!--[if gte IE 8]><meta http-equiv="X-UA-Compatible" content="IE=8" ><![endif]-->
<!DOCTYPE html>

~일 것이다 IE8 및 IE9는 표준 모드로, ~에도 불구하고 조건부 의견의 내용은 ~ 아니다 DocType로 시작하십시오. 그리고 IE6과 IE7은 조건부 의견이 대상이되지 않기 때문에 Quirks 모드로 유지됩니다.

내가 믿는 표준에 따라 허용되지만, 당신은 그것을 피하고 싶어합니다.

(보다 다른 렌더링 모드를 트리거합니다)

이로 인해 IE7이 마치 DocType이 전혀없는 것처럼 퀴크스 모드로 렌더링 할 수 있습니다. 이 페이지.

도문이 허용되기 전의 의견이지만 원인이됩니다 모두 IE 버전은 퀴크스 모드로 되돌립니다. 그들은 실제로 때때로 그 목적에 사용됩니다. XML 선언 (<?xml version ...?>) 동일한 효과가 있습니다. IE6 이하에서.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top