Programing

DOCTYPE 선언 전에 주석이 나타날 수 있습니까?

lottogame 2020. 12. 28. 07:45
반응형

DOCTYPE 선언 전에 주석이 나타날 수 있습니까?


<!-- this -->내 HTML 코드 맨 위에 DOCTYPE 선언 앞에 주석 ( 스타일) 을 배치하고 싶습니다 . 이것이 표준을 준수합니까? 주요 브라우저에서 지원합니까? 이 작업에 함정이 있습니까?


<!DOCTYPE>첫 번째를 작성하는 것이 확실히 가장 좋은 방법입니다.

나는 아주 오래 전에 어떤 브라우저 (아마 IE6)가 a를 무시했던 이상한 문제를 기억합니다. <!DOCTYPE>이전에는 무해 해 보이는 무언가 있었기 때문입니다. 그냥 공백이라고 생각하지만 아마 주석이었을 것입니다. 어쨌든 추적해야하는 것은 끔찍하고 끔찍한 버그였으며 .NET Framework 앞에 주석이나 공백을 추가 할 이유는 없습니다 <!DOCTYPE>.

<!DOCTYPE>첫 번째 글은 경험 많은 웹 개발자가 끔찍하고 파악하기 어려운 버그를 피하기 위해하는 일입니다.


수행하는 것이 완전히 유효 합니다.

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

그러나 이 제공 하는 모든 에 IE 버전의 단점 모드를 (이되지 않는 한 강제 노 쿼크 모드로 - 투시 둘점 아래 부분). 가장 간단한 방법은 주석을 DOCTYPE 아래로 이동하는 것입니다.

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

그러나 또 다른 방법은 주석을 다음과 같은 적절한 조건부 주석 으로 "업그레이드" 하는 것입니다.

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

설명 : 조건 코멘트가 없습니다 계산 IE의 세계에서, 주석으로.

대체 구문 : 조건부 주석이 HTML 표준에 대한 Microsoft의 침입이라는 것을 잊거나 기억하려면 예를 들어 다음과 같이 할 수 있습니다.

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

마찬가지로 특히 IE를 타겟팅하려면 다음을 수행 할 수 있습니다.

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

Gotchas

조건부 주석 안에 있는 주석은 IE가 그것을 본다면 (즉 , [if IE] 조건을 사용하는 경우 또는 [if! anybrowser] 조건 과 같은 [if IE]와 동등한 조건을 사용하는 경우) IE를 쿼크 모드로 전환 합니다. 위에서 언급했습니다.). 예를 들어, 이것은 IE를 쿼크 모드로 만들 것입니다.

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

그랬듯이

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

및 기타 많은 변형. 예를 들어

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

수 없습니다 때문에, 단점 모드의 원인이 여기에 조건부 주석이 DOCTYPE이 전에 다른 컨텐츠를, 따라서 IE는 페이지의 첫 번째 내용이 DOCTYPE이라고 생각한다.

마지막으로, 최신 IE 버전 인 IE8 및 IE9 는 다른 Microsoft 발명품 인 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은 조건부 주석이 그들을 대상으로하지 않기 때문에 노 쿼크 모드로 유지됩니다.


내가 믿는 표준에 따라 허용되지만 IE를 쿼크 모드로 전환하므로 확실히 피하고 싶을 것입니다.

( 다른 렌더링 모드 트리거 참조 )


이 페이지 에 따르면 IE7은 doctype이 전혀없는 것처럼 쿼크 모드로 렌더링 될 수 있습니다 .


doctype 앞의 주석은 허용되지만 모든 IE 버전이 쿼크 모드로 되돌아갑니다. 그들은 실제로 때때로 그 목적으로 사용됩니다. XML 선언 ( <?xml version ...?>)은 IE6 이하에서 동일한 효과를 갖습니다 .

참조 URL : https://stackoverflow.com/questions/941100/can-comments-appear-before-the-doctype-declaration

반응형