본문 바로가기

IE 조건부 주석

조건부 주석은 HTML 소스중 인터넷 익스플로러(ie)에서 해석되는 조건문 입니다.
구 버전의 ie에서 제대로 작동하지 않는 문제를 해결할 수 있습니다.
하지만 ie10 의 표준 모드에서 조건부 주석은 지원되지 않고, JScript 조건부 주석은 지원됩니다.

 

<!--[if condition]>
HTML
<![endif]-->

 

위와 같은 구문으로 조건부 주석을 사용할 수 있으며, 조건(condition)을 만족할 경우 HTML을 렌더링하게 됩니다.
조건부 주석을 지원하지 않는 브라우저에서는 위 구문을 일반 주석문으로만 해석합니다.

 

condition에 사용되는 기호는 다음과 같습니다.
!(아니다), lt(작다), lte(작거나 같다), gt(크다), gte(크거나 같다), ()(우선처리), &(그리고), |(또는)

 

 

condition 예) 

 [if !ie]  ie 가 아니라면
 [if lt ie 8]  ie 8 이전버전 이라면
 [if lte ie 8]  ie 8 이거나 이전버전 이라면
 [if gt ie 8]  ie 8 이후버전 이라면
 [if gte ie 8]  ie 8 이거나 이후버전 이라면
 [If !(ie 8)]  ie 8 이 아니라면
 [if (gt ie 6)&(lt ie 9)]  ie 6 이후버전 이고 ie 9 이전버전 이라면
 [if (ie 6)|(ie 8)]  ie 6 이거나 ie 8 이라면

 

이 조건부 주석을 주석 처리하는 브라우저에 대하여 마크업을 넣으려면 다음과 같이 할 수 있습니다.

 

<!--[if !ie]>-->
<link href="non-ie.css" rel="stylesheet">
<!--<![endif]-->

 

위와 같이 조건부 주석 라인을 주석처리 시키면 ie가 아닌 브라우저에 대한 css 를 적용할 수 있습니다.

 

만약 ie도 아니고 ie 9 이전 버전인 브라우저에 대하여 아래와 같이할 수 있습니다.

 

<!--[if gt ie 9]><!-->
<link href="non-ie9.css" rel="stylesheet">
<!--<![endif]-->

 

첫째줄 마지막을 ie가 아닌 타브라우저를 위해 <!--> 이 아닌 --> 로 입력한다면,
ie 9 이전 버전들은 <!--[if gt ie 9]> 구문이 끝나는 즉시 렌더링이 시작되므로 --> 부분이 브라우저에 표시될 것입니다.
이 부분을 주석시키기 위하여 --> 부분을 <!--> 로 변경한 것 입니다.

 

 

 

JScript 조건부 주석

 

JScript 안에서 사용할 수 있는 조건부 주석입니다.
ie 브라우저의 JScript engine 버전을 알 수 있는 방법입니다.
타 브라우저에 대한 처리도 가능합니다.

 

<script>
/*@cc_on
    @if (@_jscript_version >= 5)
        document.write("JScript Version 5.0 or better.<BR>");
    @else @*/
        document.write("You need a more recent script engine.<BR>");
    /*@end @*/
</script>

 

Jscript 안에서 /* */ 는 주석입니다.
@cc_on 은 조건부 주석의 시작을 나타냅니다.
@if, @elif, @else, @end 등의 조건문을 이용할 수 있습니다.
@_jscript_version 은 브라우저에 내장된 JScript engine 버전, @_win32는 32비트인지를 나타냅니다.

 

우리는 ie를 위하여 참 많은 노력이 필요합니다...
  • AHFM 2014.02.16 04:04 댓글주소 수정/삭제 댓글쓰기

    <!--[if gt ie 9]><!-->

    <!--<![endif]-->

    위 소스의 의미를 모르겠습니다. 위 설명이 너무 어렵게 되어 있어요.ㅋ

    • ... 위 소스의 의미를 모르신다면 나머지 소스들도 모르시겠네요ㅜ
      그 두 줄이 조건부 주석의 전부라 공식이라 생각하시고 외우셔야겠네요.
      <!-- --> 는 주석처리, if 구문, []는 조건... 더이상의 쉬운 설명은 제가 부족해서ㅎ

      5분만 시간내셔서 처음부터 한번더 읽어보시는게 좋을 듯!