2009-12-30 6 views
1

이 기능을 사용해야합니까?IE 조건부 주석이 인라인으로 작동합니까?

<!--[if IE]> 
<link rel="stylesheet" type="text/css" href="/minify/css?f=ie8.css<!--[if lte IE 7]>,ie7.css<![endif]--><!--[if lte IE 6]>,ie6.css<![endif]-->" /> 
<![endif]--> 

분명히 중첩 된 댓글이 작동하지 않으므로이 점은 무엇인가요?

<link rel="stylesheet" type="text/css" href="/minify/css?f=someotherfile.css<!--[if IE]>,ie8.css<![endif]--><!--[if lte IE 7]>,ie7.css<![endif]--><!--[if lte IE 6]>,ie6.css<![endif]-->" /> 
+1

'/ * begin-comment/* broken! '과 같은 이유로 작동하지 않습니다! */end-comment * /'가 작동하지 않습니다. 둥지를 틀지 않는 중첩 된 것들은 부서지기 쉽습니다. –

답변

3

아니오, 조건부 주석이 HTML 위의 매크로 스타일 처리되지 않습니다; 정상적인 HTML 주석이있을 수있는 곳에 만 갈 수 있습니다. 주석은 태그 안에 들어갈 수 없습니다.

따라서 :

<!--[if lt IE 7]><link rel="stylesheet" type="text/css" href="/minify/css?f=ie8.css,ie7.css,ie6.css"><![endif]--> 
<!--[if (gte IE 7)&(lt IE 8)]><link rel="stylesheet" type="text/css" href="/minify/css?f=ie8.css,ie7.css"><![endif]--> 
<!--[if (gte IE 8)&(lt IE 9)]><link rel="stylesheet" type="text/css" href="/minify/css?f=ie8.css"><![endif]--> 

은 (당신도 IE8에 대한 별도의 스타일 시트 보증 충분히 IE-해킹 규칙이 있나요은 해당 브라우저는 일반적으로 꽤 잘가 호환 모드에없는만큼, 행동입니다 . 약간의 규칙 만있는 경우 this tip이 사용 가능할 수 있습니다.)

+0

아쉽게도 스타일 시트가 얼마나 필요한지는 내게 달려 있습니다. 사용자가 커뮤니티 사이트에서 스타일 시트를 제출할 수 있도록 허용하고 IE 문제에 대한 불만이 많아서 이와 같은 포괄적 인 솔루션이 필요합니다. 그것이 나에게 달린 것이라면 우리는 이것들을 전혀 사용하지 않을 것입니다. ;) –

0

조건부 주석이 중첩되어 있기 때문에 작동하지 않습니다.

비 IE 브라우저는이 사이트 구문 강조 표시가 읽는 방식으로 읽습니다.

해결하려면 중첩 된 주석에서 닫기 --을 제거하여 일반 브라우저에서 숨 깁니다.
그러면 정상적으로 작동합니다. 예를 들어

:

<!--[if IE]> 
<link rel="stylesheet" type="text/css" href="/minify/css?f=ie8.css<![if lte IE 7]>,ie7.css<![endif]><![if lte IE 6]>,ie6.css<![endif]>" /> 
<![endif]--> 
+0