>

다음 코드는 신뢰할 수있는 브라우저 간 IE 버전 감지를위한 것입니다

<!--[if lt IE 7 ]><body class="ie_6"><![endif]-->
<!--[if IE 7 ]><body class="ie_7"><![endif]-->
<!--[if IE 8 ]><body class="ie_8"><![endif]-->
<!--[if IE 9 ]><body class="ie_9"><![endif]-->
<!--[if (gt IE 9)|!(IE)]><!-->
<body>
<!--<![endif]-->

내가 이해하지 못하는 것은 작동하는 이유입니다. 왜 일반적인 <body>   <body class="ie_9"> 를 덮어 쓰지 않았다  일반적인 태그이므로 모든 브라우저에서 인식해야합니다.

마법은 무엇입니까

   <!-->
    <body>
    <!--


  • 답변 # 1

    아마도 !(IE) 를 바꾸고 싶을 것입니다   (!IE)

    또한 "정상적인" <body>  당신이 말하는 태그는 조건부 주석에 있습니다. 다른 줄에 있다는 사실은 중요하지 않으며 여전히 조건부 주석 태그 안에 있으므로 영향을받습니다.

    일반적인 HTML 주석을 사용하여 IE 작업에 대한 조건 주석 <!-- -->  따라서 "false"조건부 내의 모든 코드는 주석 처리됩니다. 와이즈 비즈  그런 다음 IE는 자체 구문을 가지고 있습니다. 따라서 IE 이외의 브라우저는 주석 처리 된 문자열 만보고 IE는이를 문자열로 처리하여 실행합니다.

    이로 인해 하나의 body 태그 만 표시되며 하나만 사용됩니다.

    <시간>

    자세한 설명

    <!-- <body class="ie6"> -->
    
    

    IE에게는 다음과 같이 말합니다 :

    <!--[if (gt IE 9)|!(IE)]><!-->
    <body>
    <!--<![endif]-->
    
    

    이유를 이해하지 못하는 경우 "IE 작업에 대한 조건부 의견 ..."으로 시작하는 단락을 읽으십시오.

    다른 브라우저와 동일한 블록은 다음과 같습니다 :

    <if greater than ie9, or not ie> (ie conditional comment)
    <!--> (empty comment) (--> putting this here to stop SO ruining syntax highlighting :D)
    <body>
    <end if> (ie conditional comment)
    
    

  • 답변 # 2

    <!--[if (gt IE 9)|!(IE)]><!--> (this is just one comment, containing the text "[if (gt IE 9)|!(IE)]><!")
    <body>
    <!--<![endif]--> (again, just one comment, containing "<![endif]")
    
    
    의미 : <!--[if (gt IE 9)|!(IE)]><!--> <body> <!--<![endif]--> 를 출력  브라우저 버전이 ( <body> )보다 큰 경우 ) IE9 (예 : IE10) 또는 IE가 아닌 경우

    IE9는 현재 최신 버전이므로이 조건은 어떤 IE에서도 충족되지 않습니다.

    트릭은 그 gt 입니다  첫 번째 줄에는 다른 브라우저에서 주석이 닫히므로 -->  그냥 일반적인 의견입니다 ( <!--[if (gt IE 9)|!(IE)]><!--> 와 동일)  마지막 줄에).

    그러나 IE는 <!-- 를 구문 분석합니다.  그리고 <!--[if (gt IE 9)|!(IE)]> 그리고 <![endif]--> 를 치료  조건부 주석의 내용으로. 즉, 조건이 충족되면 빈 주석 인 <!--><body><!-- 를 출력합니다.  태그 및 주석 시작.

    MSDN에는 조건부 주석에 대한 포괄적 인 설명이 있습니다.하위 레벨에 공개 된 조건부 주석을 사용하여 동일한 결과를 얻을 수있는 것 같습니다 :

    <body>
    
    

    (유효한 HTML은 아니지만).

    <![if (gt IE 9)|!(IE)]> <p>Please upgrade to Internet Explorer version 8.</p> <![endif]>

  • 이전 php - 심포니 2 - 엔티티를 다른 테이블에 복제
  • 다음 z3py - Z3으로 오버플로 확인