IE 조건부 주석은 IE5부터 Microsoft가 제공하는 비표준 논리문입니다. 그 기능은 스타일 시트, html 태그 등과 같은 다양한 html 요소를 다양한 IE 버전의 브라우저로 유연하게 가져오는 것입니다. 분명히 이 방법의 가장 큰 장점은 Microsoft에서 공식적으로 제공하는 호환 솔루션이며 W3C 검증도 통과할 수 있다는 점입니다.
몇 가지 예를 살펴보겠습니다.
<!--[if IE]> <link type="text/css" rel="stylesheet" href="my.css" /> <![endif]-->
를 인식할 수 있습니다. IE5 이상 버전에서만 IE 조건부 주석을 지원하기 시작하기 때문에 'IE에서만' 모두 인식할 수 있다는 것은 'IE5 이상 버전에서만' 인식할 수 있다는 뜻이다.
<!--[if IE 8]> <link type="text/css" rel="stylesheet" href="my.css" /> <![endif]-->
를 인식할 수 있습니다. 더 높든 낮든 특정 IE 버전을 식별합니다. 위의 예는 IE8에서만 인식될 수 있습니다.
<!--[if !IE 7]> <link type="text/css" rel="stylesheet" href="my.css" /> <![endif]-->
를 인식할 수 있습니다. 위의 예에서 특정 버전의 IE7은 인식할 수 없지만 다른 버전은 인식할 수 있습니다. 물론 IE5 이상이어야 합니다.
<!--[if gt IE 7]> <link type="text/css" rel="stylesheet" href="my.css" /> <![endif]-->
를 인식할 수 있습니다. 위의 예에서는 IE7보다 높은 버전만 인식할 수 있습니다. IE7은 인식되지 않습니다.
<!--[if gte IE 7]> <link type="text/css" rel="stylesheet" href="my.css" /> <![endif]-->
위의 예에서는 IE7 이상 버전을 인식할 수 있습니다.
<!--[if lt IE 7]> <link type="text/css" rel="stylesheet" href="my.css" /> <![endif]-->
위의 예에서는 IE7보다 낮은 버전만 인식할 수 있으며, IE7은 인식할 수 없습니다.
<!--[if lte IE 7]> <link type="text/css" rel="stylesheet" href="my.css" /> <![endif]-->
위의 예에서는 IE7 이하 버전을 인식할 수 있습니다.
위의 코드들은 기억하기 어려울 수도 있지만, 사실 키워드만 조금만 설명하면 기억하기 쉽습니다.
lt: Less than의 줄임말로, less than을 의미합니다.
lte: Less than orequal to의 약어로, 작거나 같다는 뜻입니다.
gt: Greater than의 줄임말로, ~보다 크다는 뜻입니다.
gte: Greater than orequal to의 약어로, 크거나 같다는 뜻입니다.
!: 같지 않음을 의미하며 이는 JavaScript의 불평등 판단기와 동일합니다.
이렇게 설명하면 기억하기가 훨씬 쉬울 것입니다.
1. 일부 사람들은 IE가 아닌 브라우저에서 상황을 정의하기 위해